summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Hutterer <peter@cs.unisa.edu.au>2008-04-10 08:08:54 +0930
committerPeter Hutterer <peter@cs.unisa.edu.au>2008-04-10 08:08:54 +0930
commite7211eb0b3d10323dab681bcb18580405ea18ab2 (patch)
treebd5a14c2827b133f3bf1397eb38278c40574a52a
parent389dae73cc0f3693f49807fd2de146c454ba9783 (diff)
Xi: When attaching, check for ptr -> ptr and keybd -> keybd.
Some pointer devices have key classes (e.g. MS Optical Desktop 2000). The previous test was performed as Error if ptr -> keybd or keybd -> ptr. This doesnt work with such devices. New test is Succeed if ptr->ptr or keybd->keybd.
-rw-r--r--Xi/chdevhier.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/Xi/chdevhier.c b/Xi/chdevhier.c
index e9a5076a9..36797d90c 100644
--- a/Xi/chdevhier.c
+++ b/Xi/chdevhier.c
@@ -272,10 +272,10 @@ ProcXChangeDeviceHierarchy(ClientPtr client)
goto unwind;
}
- if ((IsPointerDevice(newmaster) &&
- !IsPointerDevice(ptr)) ||
+ if (!((IsPointerDevice(newmaster) &&
+ IsPointerDevice(ptr)) ||
(IsKeyboardDevice(newmaster) &&
- !IsKeyboardDevice(ptr)))
+ IsKeyboardDevice(ptr))))
{
rc = BadDevice;
goto unwind;