[mutter/wip/multitouch: 69/73] core: Handle TouchUpdate with TouchPendingEnd as TouchEnd



commit 2a9a499841f69755b8b818ddb36def857b723b4d
Author: Carlos Garnacho <carlosg gnome org>
Date:   Fri Sep 2 23:16:15 2011 +0200

    core: Handle TouchUpdate with TouchPendingEnd as TouchEnd
    
    The touch sequence is possibly unhandled, but we need a call
    to meta_window_end_touch() so such touch sequences are notified
    to the server, this would trigger the real TouchEnd event as
    the touch is rejected, but should be a no-op the second time

 src/core/input-events.c |   13 ++++++++++++-
 1 files changed, 12 insertions(+), 1 deletions(-)
---
diff --git a/src/core/input-events.c b/src/core/input-events.c
index c0110ff..c9f225c 100644
--- a/src/core/input-events.c
+++ b/src/core/input-events.c
@@ -94,7 +94,18 @@ meta_input_event_get_type (MetaDisplay *display,
           type = ButtonRelease;
           break;
         case XI_TouchUpdate:
-          type = MotionNotify;
+          if (((XIDeviceEvent *) xev)->flags & XITouchPendingEnd)
+            {
+              /* Consider these events like TouchEnd, as we
+               * could still need to call XIAllowTouchEvents()
+               * for this touch sequence so we get the real
+               * TouchEnd event, handling this event type the
+               * second time it arrives should be a NO-OP.
+               */
+              type = ButtonRelease;
+            }
+          else
+            type = MotionNotify;
           break;
 #endif /* HAVE_XTOUCH */
         default:



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]