From 7d4df0ee4414779ad5e519e7bd297c5dfec409a3 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Thu, 19 Mar 2009 20:24:06 +1000 Subject: [PATCH] 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 --- dix/events.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/dix/events.c b/dix/events.c index b45eb7ba0..5702d2f21 100644 --- a/dix/events.c +++ b/dix/events.c @@ -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: