diff options
author | Matthias Clasen <mclasen@redhat.com> | 2019-06-24 01:32:54 +0000 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2019-06-24 22:40:29 +0000 |
commit | f9c670b7c66b4f5a3c33804f334ddb0f5cfd3aaf (patch) | |
tree | a1578b535ef91eef976f3e7366dd2f81b455cfa6 | |
parent | e40758ec261abb842b27fa4173659957b46d6168 (diff) | |
download | gtk+-f9c670b7c66b4f5a3c33804f334ddb0f5cfd3aaf.tar.gz |
mountoperation: Avoid use of popup-menu
-rw-r--r-- | gtk/gtkmountoperation.c | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/gtk/gtkmountoperation.c b/gtk/gtkmountoperation.c index 3561bd2762..03aa35d444 100644 --- a/gtk/gtkmountoperation.c +++ b/gtk/gtkmountoperation.c @@ -53,6 +53,10 @@ #include "gtkstylecontextprivate.h" #include "gtkdialogprivate.h" #include "gtkgestureclick.h" +#include "gtkshortcutcontroller.h" +#include "gtkshortcuttrigger.h" +#include "gtkshortcutaction.h" +#include "gtkshortcut.h" #include <glib/gprintf.h> @@ -1335,6 +1339,7 @@ do_popup_menu_for_process_tree_view (GtkWidget *widget, static gboolean on_popup_menu_for_process_tree_view (GtkWidget *widget, + GVariant *args, gpointer user_data) { GtkMountOperation *op = GTK_MOUNT_OPERATION (user_data); @@ -1380,6 +1385,10 @@ create_show_processes_dialog (GtkMountOperation *op, gchar *s; gboolean use_header; GtkGesture *gesture; + GtkEventController *controller; + GtkShortcutTrigger *trigger; + GtkShortcutAction *action; + GtkShortcut *shortcut; priv = op->priv; @@ -1466,9 +1475,15 @@ create_show_processes_dialog (GtkMountOperation *op, gtk_container_add (GTK_CONTAINER (scrolled_window), tree_view); gtk_container_add (GTK_CONTAINER (vbox), scrolled_window); - g_signal_connect (tree_view, "popup-menu", - G_CALLBACK (on_popup_menu_for_process_tree_view), - op); + controller = gtk_shortcut_controller_new (); + trigger = gtk_alternative_trigger_new (gtk_keyval_trigger_new (GDK_KEY_F10, GDK_SHIFT_MASK), + gtk_keyval_trigger_new (GDK_KEY_Menu, 0)); + action = gtk_callback_action_new (on_popup_menu_for_process_tree_view, op, NULL); + shortcut = gtk_shortcut_new (trigger, action); + gtk_shortcut_controller_add_shortcut (GTK_SHORTCUT_CONTROLLER (controller), + shortcut); + g_object_unref (shortcut); + gtk_widget_add_controller (tree_view, controller); gesture = gtk_gesture_click_new (); gtk_gesture_single_set_button (GTK_GESTURE_SINGLE (gesture), GDK_BUTTON_SECONDARY); |