dix: only freeze the paired MD on a grab, not all other devices.
This commit is contained in:
parent
e4fe0a3cb7
commit
9eb8ea9e61
13
dix/events.c
13
dix/events.c
|
@ -1520,13 +1520,15 @@ CheckGrabForSyncs(DeviceIntPtr thisDev, Bool thisMode, Bool otherMode)
|
||||||
CLIENT_BITS(grab->resource)))
|
CLIENT_BITS(grab->resource)))
|
||||||
thisDev->deviceGrab.sync.other = NullGrab;
|
thisDev->deviceGrab.sync.other = NullGrab;
|
||||||
}
|
}
|
||||||
/* XXX: other should only work on the paired keyboard, not on all other
|
|
||||||
devices
|
/*
|
||||||
|
XXX: Direct slave grab won't freeze the paired master device.
|
||||||
|
The correct thing to do would be to freeze all SDs attached to the
|
||||||
|
paired master device.
|
||||||
*/
|
*/
|
||||||
for (dev = inputInfo.devices; dev; dev = dev->next)
|
if (thisDev->isMaster)
|
||||||
{
|
|
||||||
if (dev != thisDev)
|
|
||||||
{
|
{
|
||||||
|
dev = GetPairedDevice(thisDev);
|
||||||
if (otherMode == GrabModeSync)
|
if (otherMode == GrabModeSync)
|
||||||
dev->deviceGrab.sync.other = grab;
|
dev->deviceGrab.sync.other = grab;
|
||||||
else
|
else
|
||||||
|
@ -1537,7 +1539,6 @@ CheckGrabForSyncs(DeviceIntPtr thisDev, Bool thisMode, Bool otherMode)
|
||||||
dev->deviceGrab.sync.other = NullGrab;
|
dev->deviceGrab.sync.other = NullGrab;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
ComputeFreezes();
|
ComputeFreezes();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue