summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntónio Fernandes <antoniof@gnome.org>2021-08-08 20:54:55 +0100
committerAntónio Fernandes <antoniojpfernandes@gmail.com>2021-12-22 01:38:47 +0000
commit62d5b1b1147dc718c40928480768be1029e43735 (patch)
treed639d0ab75699d3d3fd448630629083d74d9410e
parentb393881f9b95a9626ed71c9ea4a8d86b883bc43e (diff)
downloadnautilus-62d5b1b1147dc718c40928480768be1029e43735.tar.gz
list-view: Stop connecting to header button ::event
The ::event signal is gone in GTK4. We already have a gesture for clicks, use it instead. This commit also prepares for turning the menu into a popover, by passing the x, y coordinates instead of a GdkEvent. This is to avoid conflicts with the changes in another branch.
-rw-r--r--src/nautilus-list-view.c46
1 files changed, 9 insertions, 37 deletions
diff --git a/src/nautilus-list-view.c b/src/nautilus-list-view.c
index 1188f42dd..c0fb18644 100644
--- a/src/nautilus-list-view.c
+++ b/src/nautilus-list-view.c
@@ -505,6 +505,15 @@ on_tree_view_multi_press_gesture_pressed (GtkGestureMultiPress *gesture,
/* Column headers lie above bin_window, hence negative y coordinate. */
if (bin_y < 0)
{
+ if (button == GDK_BUTTON_SECONDARY)
+ {
+ popup_column_header_menu (view, x, y);
+ gtk_gesture_set_state (GTK_GESTURE (gesture), GTK_EVENT_SEQUENCE_CLAIMED);
+ }
+ else
+ {
+ gtk_gesture_set_state (GTK_GESTURE (gesture), GTK_EVENT_SEQUENCE_DENIED);
+ }
return;
}
@@ -1375,33 +1384,6 @@ column_header_menu_use_default (GtkMenuItem *menu_item,
g_strfreev (default_order);
}
-static gboolean
-on_column_header_event (GtkWidget *widget,
- GdkEvent *event,
- gpointer user_data)
-{
- NautilusListView *list_view;
- guint button;
-
- list_view = NAUTILUS_LIST_VIEW (user_data);
-
- if (gdk_event_get_event_type (event) != GDK_BUTTON_PRESS)
- {
- return GDK_EVENT_PROPAGATE;
- }
-
- g_assert (gdk_event_get_button (event, &button));
-
- if (button != GDK_BUTTON_SECONDARY)
- {
- return GDK_EVENT_PROPAGATE;
- }
-
- popup_column_header_menu (list_view, (&event->button)->x, (&event->button)->y);
-
- return GDK_EVENT_STOP;
-}
-
static void
popup_column_header_menu (NautilusListView *list_view,
gdouble x,
@@ -2189,11 +2171,6 @@ create_and_set_up_tree_view (NautilusListView *view)
g_strdup ("name"),
view->details->file_name_column);
- g_signal_connect (gtk_tree_view_column_get_button (view->details->file_name_column),
- "event",
- G_CALLBACK (on_column_header_event),
- view);
-
gtk_tree_view_set_search_column (view->details->tree_view, column_num);
gtk_tree_view_column_set_sort_column_id (view->details->file_name_column, column_num);
@@ -2284,11 +2261,6 @@ create_and_set_up_tree_view (NautilusListView *view)
g_strdup (name),
column);
- g_signal_connect (gtk_tree_view_column_get_button (column),
- "event",
- G_CALLBACK (on_column_header_event),
- view);
-
gtk_tree_view_column_set_resizable (column, TRUE);
gtk_tree_view_column_set_sort_order (column, sort_order);