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.
This commit is contained in:
Peter Hutterer 2008-04-10 08:08:54 +09:30
parent 389dae73cc
commit e7211eb0b3

View File

@ -272,10 +272,10 @@ ProcXChangeDeviceHierarchy(ClientPtr client)
goto unwind; goto unwind;
} }
if ((IsPointerDevice(newmaster) && if (!((IsPointerDevice(newmaster) &&
!IsPointerDevice(ptr)) || IsPointerDevice(ptr)) ||
(IsKeyboardDevice(newmaster) && (IsKeyboardDevice(newmaster) &&
!IsKeyboardDevice(ptr))) IsKeyboardDevice(ptr))))
{ {
rc = BadDevice; rc = BadDevice;
goto unwind; goto unwind;