dix: Don't interfere grabs the interfering device is of different type.

A pointer device should be able to send events while the client has a core
grab on a keyboard device, and likewise.
This commit is contained in:
Peter Hutterer 2007-10-24 10:26:12 +09:30
parent 02508614b9
commit b7ee005d32

View File

@ -6206,7 +6206,9 @@ IsInterferingGrab(ClientPtr client, DeviceIntPtr dev, xEvent* event)
if (it->deviceGrab.grab && SameClient(it->deviceGrab.grab, client)
&& !it->deviceGrab.fromPassiveGrab)
{
return TRUE;
if ((IsPointerDevice(it) && IsPointerDevice(dev)) ||
(IsKeyboardDevice(it) && IsKeyboardDevice(dev)))
return TRUE;
}
}
it = it->next;