From: Mat Date: Sun, 17 Jul 2022 03:32:20 +0000 (+0300) Subject: treeview: Don't claim event sequence too early X-Git-Tag: archive/raspbian/4.8.3+ds-2+rpi1~3^2~20^2~3^2~16^2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=58953671fe935fb6bcbccbc8424fe30d4216cd4b;p=gtk4.git treeview: Don't claim event sequence too early We want to claim the event sequence in the click gesture when appropriate, such as activating a row or clicking an editable cell, but this is currently done too early, preventing other gestures for drag-and-drop and rubberband selection entirely. Fixes #3649 Fixes #3985 Fixes #4669 --- diff --git a/gtk/gtktreeview.c b/gtk/gtktreeview.c index 5c627b4fb2..07e02ee7d4 100644 --- a/gtk/gtktreeview.c +++ b/gtk/gtktreeview.c @@ -2758,8 +2758,6 @@ gtk_tree_view_click_gesture_pressed (GtkGestureClick *gesture, return; } - gtk_gesture_set_state (GTK_GESTURE (gesture), GTK_EVENT_SEQUENCE_CLAIMED); - if (n_press > 1) gtk_gesture_set_state (priv->drag_gesture, GTK_EVENT_SEQUENCE_DENIED); @@ -2787,6 +2785,7 @@ gtk_tree_view_click_gesture_pressed (GtkGestureClick *gesture, } grab_focus_and_unset_draw_keyfocus (tree_view); + gtk_gesture_set_state (GTK_GESTURE (gesture), GTK_EVENT_SEQUENCE_CLAIMED); return; } @@ -2910,6 +2909,7 @@ gtk_tree_view_click_gesture_pressed (GtkGestureClick *gesture, { GtkCellArea *area = gtk_cell_layout_get_area (GTK_CELL_LAYOUT (column)); cell_editable = gtk_cell_area_get_edit_widget (area); + gtk_gesture_set_state (GTK_GESTURE (gesture), GTK_EVENT_SEQUENCE_CLAIMED); if (cell_editable != NULL) { @@ -2967,7 +2967,10 @@ gtk_tree_view_click_gesture_pressed (GtkGestureClick *gesture, } if (button == GDK_BUTTON_PRIMARY && n_press == 2) - gtk_tree_view_row_activated (tree_view, path, column); + { + gtk_tree_view_row_activated (tree_view, path, column); + gtk_gesture_set_state (GTK_GESTURE (gesture), GTK_EVENT_SEQUENCE_CLAIMED); + } else { if (n_press == 1)