[gtk+/wip/carlosg/event-delivery: 97/104] gtkgesture: Consume button release/touch end events if gesture was claimed
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/wip/carlosg/event-delivery: 97/104] gtkgesture: Consume button release/touch end events if gesture was claimed
- Date: Thu, 25 May 2017 14:48:16 +0000 (UTC)
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]