summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2020-03-18 22:56:53 -0400
committerMatthias Clasen <mclasen@redhat.com>2020-03-22 11:14:07 -0400
commit7cf45aeb7369d748b9b8b1765f62e7e52e19a5f4 (patch)
treee17ce2c5309d9aee711238cdeeb2bc94cec48869
parent78a0919e84c98e56e2a19086c5b49764d4291bb7 (diff)
downloadgtk+-7cf45aeb7369d748b9b8b1765f62e7e52e19a5f4.tar.gz
mountoperation: Stop using ::popup-menu
We can just use a shortcut controller directly.
-rw-r--r--gtk/gtkmountoperation.c21
1 files changed, 18 insertions, 3 deletions
diff --git a/gtk/gtkmountoperation.c b/gtk/gtkmountoperation.c
index 51d926c401..a3debb0861 100644
--- a/gtk/gtkmountoperation.c
+++ b/gtk/gtkmountoperation.c
@@ -57,6 +57,10 @@
#include "gtkpopover.h"
#include "gtksnapshot.h"
#include "gdktextureprivate.h"
+#include "gtkshortcutcontroller.h"
+#include "gtkshortcuttrigger.h"
+#include "gtkshortcutaction.h"
+#include "gtkshortcut.h"
#include <glib/gprintf.h>
/**
@@ -1458,6 +1462,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);
@@ -1503,6 +1508,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;
@@ -1589,9 +1598,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_with_arguments (trigger, action, "s", "sv");
+ gtk_shortcut_controller_add_shortcut (GTK_SHORTCUT_CONTROLLER (controller), shortcut);
+ gtk_widget_add_controller (GTK_WIDGET (tree_view), controller);
gesture = gtk_gesture_click_new ();
gtk_gesture_single_set_button (GTK_GESTURE_SINGLE (gesture), GDK_BUTTON_SECONDARY);