summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2023-02-03 13:39:21 +0000
committerMatthias Clasen <mclasen@redhat.com>2023-02-03 13:39:21 +0000
commitb710df6f45047a5a48345b51d5951975143a9681 (patch)
tree4ca5ffeb392fbe96aa00f438d4ac399a0883c051
parent50998b0ee963cbe38967af6018737608500ec286 (diff)
parent92c2c68c7b9692f5d4292f21a96a5a3b913ff52e (diff)
downloadgtk+-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.c21
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