diff options
author | Peter Hutterer <peter@cs.unisa.edu.au> | 2007-10-24 10:26:12 +0930 |
---|---|---|
committer | Peter Hutterer <peter@cs.unisa.edu.au> | 2007-10-24 10:26:12 +0930 |
commit | b7ee005d327372c1e414ee6c526f9f7aee14bc86 (patch) | |
tree | 1b460105b0358d08856c4c2adc89162d40cf2049 | |
parent | 02508614b9f882ba1559fb4581dcf812118fdf89 (diff) |
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.
-rw-r--r-- | dix/events.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/dix/events.c b/dix/events.c index 7a21af1d1..2032b42ca 100644 --- a/dix/events.c +++ b/dix/events.c @@ -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; |