Do sent TouchEnd to listeners that don't own an accepted touch
When the owner of a touch accepts it, the other listeners must receive a TouchEnd. Even though there's code implementing the logic above in ProcessTouchOwnershipEvent(), DeliverTouchEndEvent() was refusing to send those TouchEnd events in this situatuation. Signed-off-by: Daniel d'Andrada <daniel.dandrada@canonical.com> Reviewed-by: Chase Douglas <chase.douglas@canonical.com> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
parent
02d91ccb09
commit
4dbbcdf645
|
@ -1888,6 +1888,12 @@ DeliverTouchEndEvent(DeviceIntPtr dev, TouchPointInfoPtr ti, InternalEvent *ev,
|
|||
if (normal_end)
|
||||
listener->state = LISTENER_HAS_END;
|
||||
}
|
||||
else if (ev->device_event.flags & TOUCH_ACCEPT) {
|
||||
/* Touch has been accepted by its owner, which is not this listener */
|
||||
if (listener->state != LISTENER_HAS_END)
|
||||
rc = DeliverOneTouchEvent(client, dev, ti, grab, win, ev);
|
||||
listener->state = LISTENER_HAS_END;
|
||||
}
|
||||
|
||||
out:
|
||||
return rc;
|
||||
|
|
Loading…
Reference in New Issue
Block a user