From e435d8b93c2cf7af47b74c3a04d27ebf9439ca73 Mon Sep 17 00:00:00 2001 From: Calvin Walton Date: Sat, 20 May 2023 19:25:43 -0400 Subject: [PATCH] filelauncher: Use ShowItems to show in File Manager The non-portal fallback method for launching a file manager to show the file in its parent directory was incorrectly using the `ShowFolders` method (open a folder) instead of `ShowItems` (open the parent directory and show the file). The `show_item` function (previously `show_folder`) had an unused `callback` parameter; it has been removed and the type of the parameter containing the GTask has been renamed and now uses the correct type instead of gpointer to reduce the amount of casting required. Fixes GNOME/gtk#5842 --- gtk/gtkfilelauncher.c | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/gtk/gtkfilelauncher.c b/gtk/gtkfilelauncher.c index a4c7fc5379..8ff3a08ae4 100644 --- a/gtk/gtkfilelauncher.c +++ b/gtk/gtkfilelauncher.c @@ -229,9 +229,9 @@ open_done (GObject *source, #endif static void -show_folder_done (GObject *source, - GAsyncResult *result, - gpointer data) +show_item_done (GObject *source, + GAsyncResult *result, + gpointer data) { GDBusConnection *bus = G_DBUS_CONNECTION (source); GTask *task = G_TASK (data); @@ -261,11 +261,10 @@ show_folder_done (GObject *source, #define FILE_MANAGER_DBUS_PATH "/org/freedesktop/FileManager1" static void -show_folder (GtkWindow *parent, - const char *uri, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data) +show_item (GtkWindow *parent, + const char *uri, + GCancellable *cancellable, + GTask *task) { GDBusConnection *bus; GVariantBuilder uris_builder = G_VARIANT_BUILDER_INIT (G_VARIANT_TYPE_STRING_ARRAY); @@ -274,10 +273,10 @@ show_folder (GtkWindow *parent, if (!bus) { - g_task_return_new_error (G_TASK (user_data), + g_task_return_new_error (task, GTK_DIALOG_ERROR, GTK_DIALOG_ERROR_FAILED, "Session bus not available"); - g_object_unref (G_TASK (user_data)); + g_object_unref (task); return; } @@ -287,14 +286,14 @@ show_folder (GtkWindow *parent, FILE_MANAGER_DBUS_NAME, FILE_MANAGER_DBUS_PATH, FILE_MANAGER_DBUS_IFACE, - "ShowFolders", + "ShowItems", g_variant_new ("(ass)", &uris_builder, ""), NULL, /* ignore returned type */ G_DBUS_CALL_FLAGS_NONE, -1, cancellable, - show_folder_done, - user_data); + show_item_done, + task); } G_GNUC_BEGIN_IGNORE_DEPRECATIONS @@ -470,7 +469,7 @@ gtk_file_launcher_open_containing_folder (GtkFileLauncher *self, { char *uri = g_file_get_uri (self->file); - show_folder (parent, uri, cancellable, show_folder_done, task); + show_item (parent, uri, cancellable, task); g_free (uri); } -- 2.30.2