Ticket #4068: 0001-gdk-protect-better-against-crossing-events-with-sour.patch

File 0001-gdk-protect-better-against-crossing-events-with-sour.patch, 1.3 KB (added by garnacho, 11 years ago)

gtk+ patch

  • gdk/gdkwindow.c

    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, 
    83738373    window_event_mask = window->event_mask;
    83748374
    83758375  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) &&
    83778378      mode != GDK_CROSSING_TOUCH_BEGIN &&
    83788379      mode != GDK_CROSSING_TOUCH_END)
    83798380    {
     8381      pointer_info->need_touch_press_enter = TRUE;
    83808382      block_event = TRUE;
    83818383    }
    83828384  else if (type == GDK_LEAVE_NOTIFY)