From 235b937156327e3554a6bf5961d2b1fa9e7bbb45 Mon Sep 17 00:00:00 2001
From: Carlos Garnacho <carlos@lanedo.com>
Date: Mon, 3 Dec 2012 18:28:57 +0100
Subject: [PATCH] gdk: protect better against crossing events with
sourceid=touchscreen
_gdk_windowing_got_event() tries to some extent to make all events have
a meaningful source device (eg a slave device), this triggered some paths
to get crossing events with sourceid=touchscreen that surpassed the checks
to wrap the "pointer emulating" touch event sequence with a crossing event
pair.
---
gdk/gdkwindow.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c
index 1d0e48e..f287f25 100644
a
|
b
|
send_crossing_event (GdkDisplay *display, |
8373 | 8373 | window_event_mask = window->event_mask; |
8374 | 8374 | |
8375 | 8375 | if (type == GDK_ENTER_NOTIFY && |
8376 | | pointer_info->need_touch_press_enter && |
| 8376 | (pointer_info->need_touch_press_enter || |
| 8377 | gdk_device_get_source (source_device) == GDK_SOURCE_TOUCHSCREEN) && |
8377 | 8378 | mode != GDK_CROSSING_TOUCH_BEGIN && |
8378 | 8379 | mode != GDK_CROSSING_TOUCH_END) |
8379 | 8380 | { |
| 8381 | pointer_info->need_touch_press_enter = TRUE; |
8380 | 8382 | block_event = TRUE; |
8381 | 8383 | } |
8382 | 8384 | else if (type == GDK_LEAVE_NOTIFY) |