mirror of
https://github.com/X11Libre/xserver.git
synced 2026-04-14 17:18:09 +00:00
dix: fix device sync state when calling SyncBoth during AllowEvents.
This did access the wrong device's sync state, potentially freezing or not thawing the actual device that was supposed to be thawed. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
@@ -3635,12 +3635,12 @@ DeliverGrabbedEvent(InternalEvent *event, DeviceIntPtr thisDev,
|
||||
if (dev == thisDev)
|
||||
continue;
|
||||
FreezeThaw(dev, TRUE);
|
||||
if ((grabinfo->sync.state == FREEZE_BOTH_NEXT_EVENT) &&
|
||||
if ((dev->deviceGrab.sync.state == FREEZE_BOTH_NEXT_EVENT) &&
|
||||
(CLIENT_BITS(grab->resource) ==
|
||||
CLIENT_BITS(grab->resource)))
|
||||
grabinfo->sync.state = FROZEN_NO_EVENT;
|
||||
CLIENT_BITS(dev->deviceGrab.sync.other->resource)))
|
||||
dev->deviceGrab.sync.state = FROZEN_NO_EVENT;
|
||||
else
|
||||
grabinfo->sync.other = grab;
|
||||
dev->deviceGrab.sync.other = grab;
|
||||
}
|
||||
/* fall through */
|
||||
case FREEZE_NEXT_EVENT:
|
||||
|
||||
Reference in New Issue
Block a user