summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChase Douglas <chase.douglas@canonical.com>2012-04-16 15:31:47 -0700
committerPeter Hutterer <peter.hutterer@who-t.net>2012-04-26 13:35:09 +1000
commitea3afab228f44d9a41905daeda4c0f9236dbf8e6 (patch)
tree9f5eb9be1effc8d8ab5e69a255981a92fe862f4a
parentfac2c4a5dc1d19bb347729eee8b1bbfc981b853a (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> (cherry picked from commit fc518cd9f59060cc19bb90361767c0f47f0e25eb)
-rw-r--r--Xi/exevents.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/Xi/exevents.c b/Xi/exevents.c
index e76796a09..50b05fa37 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;