[gtk: 1/2] treeview: Don't claim event sequence too early
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk: 1/2] treeview: Don't claim event sequence too early
- Date: Fri, 2 Sep 2022 12:40:16 +0000 (UTC)
commit 58953671fe935fb6bcbccbc8424fe30d4216cd4b
Author: Mat <mail mathias is>
Date: Sun Jul 17 06:32:20 2022 +0300
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
gtk/gtktreeview.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
---
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)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]