forked from AuroraMiddleware/gtk
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
This commit is contained in:
parent
09947a63ed
commit
fc19a999ec
@ -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);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user