[gtk/wip/carlosg/stop-spinbutton-stop: 1/3] gtkgesture: ::cancel if a claimed sequence goes denied




commit dc8adcda0e06aa0c3d650ea8df81667113ecb08e
Author: Carlos Garnacho <carlosg gnome org>
Date:   Wed Aug 5 23:51:50 2020 +0200

    gtkgesture: ::cancel if a claimed sequence goes denied
    
    The regular paths just emit ::end, which isn't the whole thing.
    This gives an opportunity to gestures that are stolen the sequence
    to clean themselves up.

 gtk/gtkgesture.c | 4 ++++
 1 file changed, 4 insertions(+)
---
diff --git a/gtk/gtkgesture.c b/gtk/gtkgesture.c
index 1a791d3339..544ef87bd3 100644
--- a/gtk/gtkgesture.c
+++ b/gtk/gtkgesture.c
@@ -1014,6 +1014,10 @@ gtk_gesture_set_sequence_state (GtkGesture            *gesture,
       data->state != GTK_EVENT_SEQUENCE_NONE)
     return FALSE;
 
+  if (state == GTK_EVENT_SEQUENCE_DENIED &&
+      data->state == GTK_EVENT_SEQUENCE_CLAIMED)
+    _gtk_gesture_cancel_sequence (gesture, sequence);
+
   data->state = state;
   gtk_widget_cancel_event_sequence (gtk_event_controller_get_widget (GTK_EVENT_CONTROLLER (gesture)),
                                     gesture, sequence, state);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]