diff options
author | Peter Hutterer <peter.hutterer@who-t.net> | 2009-05-20 10:55:03 +1000 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2009-05-22 15:44:57 +1000 |
commit | ebe45e1a72a81ad22413e5d0514869b3e45a69b7 (patch) | |
tree | 3932faf98c84b604e123b7e12a00cce52a4c4bb0 /dix/devices.c | |
parent | bc63c8a4570c989f19a036965854bceb9800ce19 (diff) |
input: introduce partial class copying depending on the event.
Copying all classes into the master device has drawbacks for hybrid devices
(devices that are both mice and keyboards). If such a device posts an event,
it's key classes are moved into the VCP. The key event itself is unaffected
by keyboard grabs and the like.
Partial class copying copies depending on the event and copies the classes
into the right master device (i.e. the VCK for key events, the VCP for
pointer events).
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Diffstat (limited to 'dix/devices.c')
-rw-r--r-- | dix/devices.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/dix/devices.c b/dix/devices.c index c94e93518..6266b63f5 100644 --- a/dix/devices.c +++ b/dix/devices.c @@ -2320,7 +2320,8 @@ AttachDevice(ClientPtr client, DeviceIntPtr dev, DeviceIntPtr master) /* XXX: reset master back to defaults */ event = InitEventList(1); SetMinimumEventSize(event, 1, sizeof(DeviceChangedEvent)); - CreateClassesChangedEvent(event, oldmaster, oldmaster); + CreateClassesChangedEvent(event, oldmaster, oldmaster, + DEVCHANGE_POINTER_EVENT | DEVCHANGE_KEYBOARD_EVENT); XISendDeviceChangedEvent(oldmaster, oldmaster, (DeviceChangedEvent*)event->event); FreeEventList(event, 1); |