diff options
author | Chase Douglas <chase.douglas@canonical.com> | 2012-04-16 15:31:47 -0700 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2012-04-26 13:35:09 +1000 |
commit | ea3afab228f44d9a41905daeda4c0f9236dbf8e6 (patch) | |
tree | 9f5eb9be1effc8d8ab5e69a255981a92fe862f4a | |
parent | fac2c4a5dc1d19bb347729eee8b1bbfc981b853a (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.c | 3 |
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; |