filechooser: Fix context menus
authorMatthias Clasen <mclasen@redhat.com>
Fri, 3 Feb 2023 13:16:40 +0000 (14:16 +0100)
committerMatthias Clasen <mclasen@redhat.com>
Fri, 3 Feb 2023 13:17:34 +0000 (14:17 +0100)
We only want to show the file list context menu
when we are over the file list.

Fixes: #5554
gtk/gtkfilechooserwidget.c

index 38b674dbce885389fe31495fe93f8e6eb2909ecb..b6382ccdba305dc0fdd8e1008d4b2b63cb9dc63d 100644 (file)
@@ -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