[gtk+] wayland: Emit cancelled on touchpoint used on window dragging/moving
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] wayland: Emit cancelled on touchpoint used on window dragging/moving
- Date: Mon, 14 Dec 2015 23:47:29 +0000 (UTC)
commit 3009eac85e15607bfda70952a13c33e36219ba38
Author: Carlos Garnacho <carlosg gnome org>
Date: Wed Dec 9 12:49:43 2015 +0100
wayland: Emit cancelled on touchpoint used on window dragging/moving
This allows GDK to unset the grab itself. Also, make sure we unset
the "pointer emulating" touch on the device if this is the
pointer emulating sequence.
https://bugzilla.gnome.org/show_bug.cgi?id=759309
gdk/wayland/gdkdevice-wayland.c | 19 ++++++++++++++++---
1 files changed, 16 insertions(+), 3 deletions(-)
---
diff --git a/gdk/wayland/gdkdevice-wayland.c b/gdk/wayland/gdkdevice-wayland.c
index e6eaf62..3836d6e 100644
--- a/gdk/wayland/gdkdevice-wayland.c
+++ b/gdk/wayland/gdkdevice-wayland.c
@@ -2819,14 +2819,27 @@ gdk_wayland_device_unset_touch_grab (GdkDevice *gdk_device,
GdkEventSequence *sequence)
{
GdkWaylandDeviceData *device;
+ GdkWaylandTouchData *touch;
+ GdkEvent *event;
g_return_if_fail (GDK_IS_WAYLAND_DEVICE (gdk_device));
device = GDK_WAYLAND_DEVICE (gdk_device)->device;
+ touch = gdk_wayland_device_get_touch (device,
+ GDK_EVENT_SEQUENCE_TO_SLOT (sequence));
- gdk_wayland_device_remove_touch (device, GDK_EVENT_SEQUENCE_TO_SLOT (sequence));
- _gdk_display_end_touch_grab (gdk_device_get_display (gdk_device),
- gdk_device, sequence);
+ if (GDK_WAYLAND_DEVICE (device->touch_master)->emulating_touch == touch)
+ {
+ GDK_WAYLAND_DEVICE (device->touch_master)->emulating_touch = NULL;
+ emulate_touch_crossing (touch->window, NULL,
+ device->touch_master, device->touch,
+ touch, GDK_LEAVE_NOTIFY, GDK_CROSSING_NORMAL,
+ GDK_CURRENT_TIME);
+ }
+
+ event = _create_touch_event (device, touch, GDK_TOUCH_CANCEL,
+ GDK_CURRENT_TIME);
+ _gdk_wayland_display_deliver_event (device->display, event);
}
struct wl_data_device *
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]