summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChase Douglas <chase.douglas@canonical.com>2012-04-16 15:31:47 -0700
committerChase Douglas <chase.douglas@ubuntu.com>2012-04-18 13:58:40 -0700
commitfc518cd9f59060cc19bb90361767c0f47f0e25eb (patch)
tree1c62d0ba95f97e453b43f0e75d81fcc28f6a747c
parent80d7d1ec6a9d61aa96e7d019dc1bee29d90cea34 (diff)
End a pointer emulated touch event only on a "real" end event
Fake end events are generated by touch acceptance or rejection. These should not end the touch point. Signed-off-by: Chase Douglas <chase.douglas@canonical.com> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
-rw-r--r--Xi/exevents.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/Xi/exevents.c b/Xi/exevents.c
index 3dd3688e6..823da2a06 100644
--- a/Xi/exevents.c
+++ b/Xi/exevents.c
@@ -1856,7 +1856,8 @@ DeliverTouchEndEvent(DeviceIntPtr dev, TouchPointInfoPtr ti, InternalEvent *ev,
if (ti->num_listeners > 1) {
ev->any.type = ET_TouchUpdate;
ev->device_event.flags |= TOUCH_PENDING_END;
- ti->pending_finish = TRUE;
+ if (!(ev->device_event.flags & TOUCH_CLIENT_ID))
+ ti->pending_finish = TRUE;
}
goto out;