diff options
author | Carlos Garnacho <carlosg@gnome.org> | 2015-12-09 12:39:43 +0100 |
---|---|---|
committer | Carlos Garnacho <carlosg@gnome.org> | 2015-12-15 00:40:21 +0100 |
commit | fc19a999ec156f7f746c7928f1828f40a01c5b90 (patch) | |
tree | 186d6c36e1b784245011f929c0145b21962ea75a | |
parent | 09947a63ed563777d2655d1833cca56798583809 (diff) | |
download | gtk+-fc19a999ec156f7f746c7928f1828f40a01c5b90.tar.gz |
gdk: Manage GDK_TOUCH_CANCEL events on gdk_windowing_got_event()
These events must get active/implicit grabs undone, and can be done
on client-side code.
https://bugzilla.gnome.org/show_bug.cgi?id=759309
-rw-r--r-- | gdk/gdkwindow.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c index bd32ad12c7..6f9aae803f 100644 --- a/gdk/gdkwindow.c +++ b/gdk/gdkwindow.c @@ -9579,7 +9579,8 @@ _gdk_windowing_got_event (GdkDisplay *display, goto out; } - if (!(is_button_type (event->type) || + if (!(event->type == GDK_TOUCH_CANCEL || + is_button_type (event->type) || is_motion_type (event->type) || is_gesture_type (event->type)) || event_window->window_type == GDK_WINDOW_ROOT) @@ -9684,13 +9685,14 @@ _gdk_windowing_got_event (GdkDisplay *display, unlink_event = proxy_gesture_event (event, serial); if ((event->type == GDK_BUTTON_RELEASE || + event->type == GDK_TOUCH_CANCEL || event->type == GDK_TOUCH_END) && !event->any.send_event) { GdkEventSequence *sequence; sequence = gdk_event_get_event_sequence (event); - if (event->type == GDK_TOUCH_END && sequence) + if (sequence) { _gdk_display_end_touch_grab (display, device, sequence); } |