dix: Merge DevicePresence notify events generation into a single function.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
parent
7f1ba804a1
commit
97cb3cc28e
|
@ -239,6 +239,22 @@ AddInputDevice(ClientPtr client, DeviceProc deviceProc, Bool autoStart)
|
||||||
return dev;
|
return dev;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
SendDevicePresenceEvent(int deviceid, int type)
|
||||||
|
{
|
||||||
|
DeviceIntRec dummyDev;
|
||||||
|
devicePresenceNotify ev;
|
||||||
|
|
||||||
|
memset(&dummyDev, 0, sizeof(DeviceIntRec));
|
||||||
|
ev.type = DevicePresenceNotify;
|
||||||
|
ev.time = currentTime.milliseconds;
|
||||||
|
ev.devchange = type;
|
||||||
|
ev.deviceid = deviceid;
|
||||||
|
dummyDev.id = MAXDEVICES;
|
||||||
|
SendEventToAllWindows(&dummyDev, DevicePresenceNotifyMask,
|
||||||
|
(xEvent*)&ev, 1);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Enable the device through the driver, add the device to the device list.
|
* Enable the device through the driver, add the device to the device list.
|
||||||
* Switch device ON through the driver and push it onto the global device
|
* Switch device ON through the driver and push it onto the global device
|
||||||
|
@ -256,9 +272,7 @@ EnableDevice(DeviceIntPtr dev)
|
||||||
{
|
{
|
||||||
DeviceIntPtr *prev;
|
DeviceIntPtr *prev;
|
||||||
int ret;
|
int ret;
|
||||||
DeviceIntRec dummyDev;
|
|
||||||
DeviceIntPtr other;
|
DeviceIntPtr other;
|
||||||
devicePresenceNotify ev;
|
|
||||||
int namelen = 0; /* dummy */
|
int namelen = 0; /* dummy */
|
||||||
int evsize = sizeof(xEvent);
|
int evsize = sizeof(xEvent);
|
||||||
int listlen;
|
int listlen;
|
||||||
|
@ -328,13 +342,7 @@ EnableDevice(DeviceIntPtr dev)
|
||||||
XA_INTEGER, 8, PropModeReplace, 1, &enabled,
|
XA_INTEGER, 8, PropModeReplace, 1, &enabled,
|
||||||
TRUE);
|
TRUE);
|
||||||
|
|
||||||
ev.type = DevicePresenceNotify;
|
SendDevicePresenceEvent(dev->id, DeviceEnabled);
|
||||||
ev.time = currentTime.milliseconds;
|
|
||||||
ev.devchange = DeviceEnabled;
|
|
||||||
ev.deviceid = dev->id;
|
|
||||||
dummyDev.id = MAXDEVICES;
|
|
||||||
SendEventToAllWindows(&dummyDev, DevicePresenceNotifyMask,
|
|
||||||
(xEvent *) &ev, 1);
|
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
@ -353,8 +361,6 @@ Bool
|
||||||
DisableDevice(DeviceIntPtr dev)
|
DisableDevice(DeviceIntPtr dev)
|
||||||
{
|
{
|
||||||
DeviceIntPtr *prev, other;
|
DeviceIntPtr *prev, other;
|
||||||
DeviceIntRec dummyDev;
|
|
||||||
devicePresenceNotify ev;
|
|
||||||
BOOL enabled;
|
BOOL enabled;
|
||||||
|
|
||||||
for (prev = &inputInfo.devices;
|
for (prev = &inputInfo.devices;
|
||||||
|
@ -406,14 +412,7 @@ DisableDevice(DeviceIntPtr dev)
|
||||||
XA_INTEGER, 8, PropModeReplace, 1, &enabled,
|
XA_INTEGER, 8, PropModeReplace, 1, &enabled,
|
||||||
TRUE);
|
TRUE);
|
||||||
|
|
||||||
ev.type = DevicePresenceNotify;
|
SendDevicePresenceEvent(dev->id, DeviceDisabled);
|
||||||
ev.time = currentTime.milliseconds;
|
|
||||||
ev.devchange = DeviceDisabled;
|
|
||||||
ev.deviceid = dev->id;
|
|
||||||
dummyDev.id = MAXDEVICES;
|
|
||||||
SendEventToAllWindows(&dummyDev, DevicePresenceNotifyMask,
|
|
||||||
(xEvent *) &ev, 1);
|
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -430,8 +429,6 @@ int
|
||||||
ActivateDevice(DeviceIntPtr dev)
|
ActivateDevice(DeviceIntPtr dev)
|
||||||
{
|
{
|
||||||
int ret = Success;
|
int ret = Success;
|
||||||
devicePresenceNotify ev;
|
|
||||||
DeviceIntRec dummyDev;
|
|
||||||
ScreenPtr pScreen = screenInfo.screens[0];
|
ScreenPtr pScreen = screenInfo.screens[0];
|
||||||
|
|
||||||
if (!dev || !dev->deviceProc)
|
if (!dev || !dev->deviceProc)
|
||||||
|
@ -446,16 +443,7 @@ ActivateDevice(DeviceIntPtr dev)
|
||||||
if (dev->isMaster && dev->spriteInfo->spriteOwner)
|
if (dev->isMaster && dev->spriteInfo->spriteOwner)
|
||||||
pScreen->DeviceCursorInitialize(dev, pScreen);
|
pScreen->DeviceCursorInitialize(dev, pScreen);
|
||||||
|
|
||||||
ev.type = DevicePresenceNotify;
|
SendDevicePresenceEvent(dev->id, DeviceAdded);
|
||||||
ev.time = currentTime.milliseconds;
|
|
||||||
ev.devchange = DeviceAdded;
|
|
||||||
ev.deviceid = dev->id;
|
|
||||||
|
|
||||||
memset(&dummyDev, 0, sizeof(DeviceIntRec));
|
|
||||||
dummyDev.id = MAXDEVICES;
|
|
||||||
SendEventToAllWindows(&dummyDev, DevicePresenceNotifyMask,
|
|
||||||
(xEvent *) &ev, 1);
|
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -900,8 +888,6 @@ RemoveDevice(DeviceIntPtr dev)
|
||||||
{
|
{
|
||||||
DeviceIntPtr prev,tmp,next;
|
DeviceIntPtr prev,tmp,next;
|
||||||
int ret = BadMatch;
|
int ret = BadMatch;
|
||||||
devicePresenceNotify ev;
|
|
||||||
DeviceIntRec dummyDev;
|
|
||||||
ScreenPtr screen = screenInfo.screens[0];
|
ScreenPtr screen = screenInfo.screens[0];
|
||||||
int deviceid;
|
int deviceid;
|
||||||
int initialized;
|
int initialized;
|
||||||
|
@ -954,13 +940,7 @@ RemoveDevice(DeviceIntPtr dev)
|
||||||
|
|
||||||
if (ret == Success && initialized) {
|
if (ret == Success && initialized) {
|
||||||
inputInfo.numDevices--;
|
inputInfo.numDevices--;
|
||||||
ev.type = DevicePresenceNotify;
|
SendDevicePresenceEvent(deviceid, DeviceRemoved);
|
||||||
ev.time = currentTime.milliseconds;
|
|
||||||
ev.devchange = DeviceRemoved;
|
|
||||||
ev.deviceid = deviceid;
|
|
||||||
dummyDev.id = MAXDEVICES;
|
|
||||||
SendEventToAllWindows(&dummyDev, DevicePresenceNotifyMask,
|
|
||||||
(xEvent *) &ev, 1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
|
|
Loading…
Reference in New Issue