GDBusInterfaceSkeleton * file_chooser_create (GDBusConnection *connection, const char *dbus_name) { g_autoptr(GError) error = NULL; request_by_handle = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref); impl = xdp_impl_file_chooser_proxy_new_sync (connection, G_DBUS_PROXY_FLAGS_NONE, dbus_name, "/org/freedesktop/portal/desktop", NULL, &error); if (impl == NULL) { g_warning ("Failed to create file chooser proxy: %s\n", error->message); return NULL; } set_proxy_use_threads (G_DBUS_PROXY (impl)); file_chooser = g_object_new (file_chooser_get_type (), NULL); g_signal_connect (impl, "open-file-response", (GCallback)handle_open_file_response, NULL); g_signal_connect (impl, "open-files-response", (GCallback)handle_open_files_response, NULL); g_signal_connect (impl, "save-file-response", (GCallback)handle_save_file_response, NULL); return G_DBUS_INTERFACE_SKELETON (file_chooser); }
GDBusInterfaceSkeleton * file_chooser_create (GDBusConnection *connection, const char *dbus_name) { g_autoptr(GError) error = NULL; impl = xdp_impl_file_chooser_proxy_new_sync (connection, G_DBUS_PROXY_FLAGS_NONE, dbus_name, DESKTOP_PORTAL_OBJECT_PATH, NULL, &error); if (impl == NULL) { g_warning ("Failed to create file chooser proxy: %s", error->message); return NULL; } file_chooser = g_object_new (file_chooser_get_type (), NULL); return G_DBUS_INTERFACE_SKELETON (file_chooser); }