Update event type when delivering end event to a pointer listener
Just like when we deliver to a touch listener, we must convert a touch end event to an update event for further clients. This also ensures that the touch record is not deleted at the end of ProcessTouchEvent(). Signed-off-by: Chase Douglas <chase.douglas@canonical.com> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
parent
210cd12c47
commit
163b0f375d
|
@ -1757,6 +1757,13 @@ DeliverTouchEndEvent(DeviceIntPtr dev, TouchPointInfoPtr ti, InternalEvent *ev,
|
|||
listener->type == LISTENER_POINTER_GRAB) {
|
||||
rc = DeliverTouchEmulatedEvent(dev, ti, ev, listener, client, win,
|
||||
grab, xi2mask);
|
||||
|
||||
if (ti->num_listeners > 1) {
|
||||
ev->any.type = ET_TouchUpdate;
|
||||
ev->device_event.flags |= TOUCH_PENDING_END;
|
||||
ti->pending_finish = TRUE;
|
||||
}
|
||||
|
||||
goto out;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user