diff --git a/Xi/selectev.c b/Xi/selectev.c index d3670ab1b..53d8f7408 100644 --- a/Xi/selectev.c +++ b/Xi/selectev.c @@ -106,10 +106,10 @@ HandleDevicePresenceMask(ClientPtr client, WindowPtr win, if (mask == 0) return Success; - /* We always only use mksidx = 0 for events not bound to + /* We always only use mksidx = MAX_DEVICES for events not bound to * devices */ - if (AddExtensionClient (win, client, mask, 0) != Success) + if (AddExtensionClient (win, client, mask, MAX_DEVICES) != Success) return BadAlloc; RecalculateDeviceDeliverableEvents(win); diff --git a/dix/devices.c b/dix/devices.c index 91a43f342..0a68c0e61 100644 --- a/dix/devices.c +++ b/dix/devices.c @@ -275,7 +275,7 @@ EnableDevice(DeviceIntPtr dev) ev.time = currentTime.milliseconds; ev.devchange = DeviceEnabled; ev.deviceid = dev->id; - dummyDev.id = 0; + dummyDev.id = MAX_DEVICES; SendEventToAllWindows(&dummyDev, DevicePresenceNotifyMask, (xEvent *) &ev, 1); @@ -339,7 +339,7 @@ DisableDevice(DeviceIntPtr dev) ev.time = currentTime.milliseconds; ev.devchange = DeviceDisabled; ev.deviceid = dev->id; - dummyDev.id = 0; + dummyDev.id = MAX_DEVICES; SendEventToAllWindows(&dummyDev, DevicePresenceNotifyMask, (xEvent *) &ev, 1); @@ -379,6 +379,7 @@ ActivateDevice(DeviceIntPtr dev) ev.deviceid = dev->id; memset(&dummyDev, 0, sizeof(DeviceIntRec)); + dummyDev.id = MAX_DEVICES; SendEventToAllWindows(&dummyDev, DevicePresenceNotifyMask, (xEvent *) &ev, 1); @@ -937,7 +938,7 @@ RemoveDevice(DeviceIntPtr dev) ev.time = currentTime.milliseconds; ev.devchange = DeviceRemoved; ev.deviceid = deviceid; - dummyDev.id = 0; + dummyDev.id = MAX_DEVICES; SendEventToAllWindows(&dummyDev, DevicePresenceNotifyMask, (xEvent *) &ev, 1); } diff --git a/include/inputstr.h b/include/inputstr.h index 4c7ec2eb9..e5de6fc31 100644 --- a/include/inputstr.h +++ b/include/inputstr.h @@ -66,7 +66,7 @@ SOFTWARE. #define MAX_DEVICES 20 -#define EMASKSIZE MAX_DEVICES +#define EMASKSIZE MAX_DEVICES + 1 extern DevPrivateKey CoreDevicePrivateKey;