From 5b118a9fd768f752f3e770d7734596e239de942d Mon Sep 17 00:00:00 2001 From: Sjoerd Simons Date: Sun, 8 Jun 2014 17:21:14 +0200 Subject: [PATCH] wayland: Ensure the touch sequence pointer value is non-null Weston numbers its touch sequences ids starting from 0, thus simply setting the GtkEvents touch.sequence to the touch id value typically causes gdk_event_get_event_sequence to return NULL. Unfortunately this confuses other parts of GDK. As both weston & mutter keep the sequence id between 0..max_dev_touches -1 simply use + 1 to keep the id > 0. While this isn't entirely correct (compositor could send -1 as the touch id), this keeps the touch id in gtk tied to the touch id from weston which is useful for debugging. A more thorough solution could be done when it turns out this is an issue in practise https://bugzilla.gnome.org/show_bug.cgi?id=731371 --- gdk/wayland/gdkdevice-wayland.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gdk/wayland/gdkdevice-wayland.c b/gdk/wayland/gdkdevice-wayland.c index 5cde19f9f9..327c12483e 100644 --- a/gdk/wayland/gdkdevice-wayland.c +++ b/gdk/wayland/gdkdevice-wayland.c @@ -1289,7 +1289,7 @@ _create_touch_event (GdkWaylandDeviceData *device, event->touch.time = time; event->touch.state = device->modifiers; gdk_event_set_screen (event, display->screen); - event->touch.sequence = GUINT_TO_POINTER (touch->id); + event->touch.sequence = GUINT_TO_POINTER (touch->id + 1); if (touch->initial_touch) {