diff options
author | Matthias Clasen <mclasen@redhat.com> | 2023-02-03 13:39:21 +0000 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2023-02-03 13:39:21 +0000 |
commit | b710df6f45047a5a48345b51d5951975143a9681 (patch) | |
tree | 4ca5ffeb392fbe96aa00f438d4ac399a0883c051 | |
parent | 50998b0ee963cbe38967af6018737608500ec286 (diff) | |
parent | 92c2c68c7b9692f5d4292f21a96a5a3b913ff52e (diff) | |
download | gtk+-b710df6f45047a5a48345b51d5951975143a9681.tar.gz |
Merge branch 'file-chooser-context-menu' into 'main'
filechooser: Fix context menus
Closes #5554
See merge request GNOME/gtk!5472
-rw-r--r-- | gtk/gtkfilechooserwidget.c | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/gtk/gtkfilechooserwidget.c b/gtk/gtkfilechooserwidget.c index 38b674dbce..b6382ccdba 100644 --- a/gtk/gtkfilechooserwidget.c +++ b/gtk/gtkfilechooserwidget.c @@ -7222,16 +7222,21 @@ popup_menu (GtkWidget *widget, } static void -file_chooser_widget_clicked (GtkEventController *controller, - int n_press, - double x, - double y, - gpointer user_data) +file_chooser_widget_clicked (GtkEventController *controller, + int n_press, + double x, + double y, + GtkFileChooserWidget *impl) { - GtkWidget *widget = user_data; + GtkWidget *widget = GTK_WIDGET (impl); + GtkWidget *child; - gtk_gesture_set_state (GTK_GESTURE (controller), GTK_EVENT_SEQUENCE_CLAIMED); - popup_menu (widget, x, y); + child = gtk_widget_pick (widget, x, y, 0); + if (gtk_widget_is_ancestor (child, impl->browse_files_stack)) + { + gtk_gesture_set_state (GTK_GESTURE (controller), GTK_EVENT_SEQUENCE_CLAIMED); + popup_menu (widget, x, y); + } } static void |