[gtk+/wip/carlosg/event-delivery: 97/104] gtkgesture: Consume button release/touch end events if gesture was claimed



commit f8bc56dd553aebce376ba0eab6e296e19762b781
Author: Carlos Garnacho <carlosg gnome org>
Date:   Wed May 24 18:22:00 2017 +0200

    gtkgesture: Consume button release/touch end events if gesture was claimed
    
    In these situations we must perform the "is it claimed" check before removing
    the (touch)point, as doing so when the gesture is empty will be too late if
    the gesture actually claimed input.

 gtk/gtkgesture.c |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)
---
diff --git a/gtk/gtkgesture.c b/gtk/gtkgesture.c
index caef7d4..d8885ea 100644
--- a/gtk/gtkgesture.c
+++ b/gtk/gtkgesture.c
@@ -693,6 +693,11 @@ gtk_gesture_handle_event (GtkEventController *controller,
            (event->type == GDK_TOUCHPAD_PINCH &&
             event->touchpad_pinch.phase == GDK_TOUCHPAD_GESTURE_PHASE_END))
     {
+      gboolean was_claimed;
+
+      was_claimed =
+        gtk_gesture_get_sequence_state (gesture, sequence) == GTK_EVENT_SEQUENCE_CLAIMED;
+
       if (_gtk_gesture_update_point (gesture, event, FALSE))
         {
           if (was_recognized &&
@@ -701,6 +706,8 @@ gtk_gesture_handle_event (GtkEventController *controller,
 
           _gtk_gesture_remove_point (gesture, event);
         }
+
+      return was_claimed && was_recognized;
     }
   else if (event->type == GDK_MOTION_NOTIFY ||
            event->type == GDK_TOUCH_UPDATE ||


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