diff options
author | Peter Hutterer <peter@cs.unisa.edu.au> | 2008-04-10 08:08:54 +0930 |
---|---|---|
committer | Peter Hutterer <peter@cs.unisa.edu.au> | 2008-04-10 08:08:54 +0930 |
commit | e7211eb0b3d10323dab681bcb18580405ea18ab2 (patch) | |
tree | bd5a14c2827b133f3bf1397eb38278c40574a52a /Xi | |
parent | 389dae73cc0f3693f49807fd2de146c454ba9783 (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.
Diffstat (limited to 'Xi')
-rw-r--r-- | Xi/chdevhier.c | 6 |
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; |