diff options
author | Carlos Garnacho <carlosg@gnome.org> | 2020-06-26 17:36:37 +0200 |
---|---|---|
committer | Carlos Garnacho <carlosg@gnome.org> | 2020-06-26 17:48:10 +0200 |
commit | 0ce4f669769fececfe93b2ca2c4006c34e1a3b3d (patch) | |
tree | 3f5b8e6e9bf63578a55a1e5d44efbedf5ceccce7 /gtk/gtktext.c | |
parent | b81bbde7c85cb74177e16dac510cb11931fb152c (diff) | |
download | gtk+-0ce4f669769fececfe93b2ca2c4006c34e1a3b3d.tar.gz |
gtktext: Don't accept (twice!) all press actions
The gesture should claim the sequence after triggering uncancellable
actions, like pasting, showing a menu or selecting words/lines. A
single first button press initiating a drag does not trigger
anything yet, so it should avoid claiming the sequence.
Diffstat (limited to 'gtk/gtktext.c')
-rw-r--r-- | gtk/gtktext.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/gtk/gtktext.c b/gtk/gtktext.c index 776bb421c7..178bed2460 100644 --- a/gtk/gtktext.c +++ b/gtk/gtktext.c @@ -2667,8 +2667,6 @@ gtk_text_click_gesture_pressed (GtkGestureClick *gesture, current = gtk_gesture_single_get_current_sequence (GTK_GESTURE_SINGLE (gesture)); event = gtk_gesture_get_last_event (GTK_GESTURE (gesture), current); - gtk_gesture_set_sequence_state (GTK_GESTURE (gesture), current, - GTK_EVENT_SEQUENCE_CLAIMED); gesture_get_current_point_in_layout (GTK_GESTURE_SINGLE (gesture), self, &x, &y); gtk_text_reset_blink_time (self); @@ -2816,12 +2814,13 @@ gtk_text_click_gesture_pressed (GtkGestureClick *gesture, gtk_text_set_positions (self, end, start); } - gtk_gesture_set_state (priv->drag_gesture, - GTK_EVENT_SEQUENCE_CLAIMED); gtk_text_update_handles (self); } + if (button != GDK_BUTTON_PRIMARY || n_press >= 3) + gtk_gesture_set_state (priv->drag_gesture, GTK_EVENT_SEQUENCE_CLAIMED); + if (n_press >= 3) gtk_event_controller_reset (GTK_EVENT_CONTROLLER (gesture)); } |