summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2009-03-12 10:17:16 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2009-03-12 11:03:29 +1000
commit97cb3cc28e4a5694d17f156276efd84555a96d18 (patch)
tree79abbaa031c809d4e0d957f6130b274a38e501e8
parent7f1ba804a1c1aef725e20a04e5f6ef74478ecf44 (diff)
dix: Merge DevicePresence notify events generation into a single function.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-rw-r--r--dix/devices.c60
1 files changed, 20 insertions, 40 deletions
diff --git a/dix/devices.c b/dix/devices.c
index 51d709145..f89e8e73b 100644
--- a/dix/devices.c
+++ b/dix/devices.c
@@ -239,6 +239,22 @@ AddInputDevice(ClientPtr client, DeviceProc deviceProc, Bool autoStart)
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.
* Switch device ON through the driver and push it onto the global device
@@ -256,9 +272,7 @@ EnableDevice(DeviceIntPtr dev)
{
DeviceIntPtr *prev;
int ret;
- DeviceIntRec dummyDev;
DeviceIntPtr other;
- devicePresenceNotify ev;
int namelen = 0; /* dummy */
int evsize = sizeof(xEvent);
int listlen;
@@ -328,13 +342,7 @@ EnableDevice(DeviceIntPtr dev)
XA_INTEGER, 8, PropModeReplace, 1, &enabled,
TRUE);
- ev.type = DevicePresenceNotify;
- ev.time = currentTime.milliseconds;
- ev.devchange = DeviceEnabled;
- ev.deviceid = dev->id;
- dummyDev.id = MAXDEVICES;
- SendEventToAllWindows(&dummyDev, DevicePresenceNotifyMask,
- (xEvent *) &ev, 1);
+ SendDevicePresenceEvent(dev->id, DeviceEnabled);
return TRUE;
}
@@ -353,8 +361,6 @@ Bool
DisableDevice(DeviceIntPtr dev)
{
DeviceIntPtr *prev, other;
- DeviceIntRec dummyDev;
- devicePresenceNotify ev;
BOOL enabled;
for (prev = &inputInfo.devices;
@@ -406,14 +412,7 @@ DisableDevice(DeviceIntPtr dev)
XA_INTEGER, 8, PropModeReplace, 1, &enabled,
TRUE);
- ev.type = DevicePresenceNotify;
- ev.time = currentTime.milliseconds;
- ev.devchange = DeviceDisabled;
- ev.deviceid = dev->id;
- dummyDev.id = MAXDEVICES;
- SendEventToAllWindows(&dummyDev, DevicePresenceNotifyMask,
- (xEvent *) &ev, 1);
-
+ SendDevicePresenceEvent(dev->id, DeviceDisabled);
return TRUE;
}
@@ -430,8 +429,6 @@ int
ActivateDevice(DeviceIntPtr dev)
{
int ret = Success;
- devicePresenceNotify ev;
- DeviceIntRec dummyDev;
ScreenPtr pScreen = screenInfo.screens[0];
if (!dev || !dev->deviceProc)
@@ -446,16 +443,7 @@ ActivateDevice(DeviceIntPtr dev)
if (dev->isMaster && dev->spriteInfo->spriteOwner)
pScreen->DeviceCursorInitialize(dev, pScreen);
- ev.type = DevicePresenceNotify;
- 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);
-
+ SendDevicePresenceEvent(dev->id, DeviceAdded);
return ret;
}
@@ -900,8 +888,6 @@ RemoveDevice(DeviceIntPtr dev)
{
DeviceIntPtr prev,tmp,next;
int ret = BadMatch;
- devicePresenceNotify ev;
- DeviceIntRec dummyDev;
ScreenPtr screen = screenInfo.screens[0];
int deviceid;
int initialized;
@@ -954,13 +940,7 @@ RemoveDevice(DeviceIntPtr dev)
if (ret == Success && initialized) {
inputInfo.numDevices--;
- ev.type = DevicePresenceNotify;
- ev.time = currentTime.milliseconds;
- ev.devchange = DeviceRemoved;
- ev.deviceid = deviceid;
- dummyDev.id = MAXDEVICES;
- SendEventToAllWindows(&dummyDev, DevicePresenceNotifyMask,
- (xEvent *) &ev, 1);
+ SendDevicePresenceEvent(deviceid, DeviceRemoved);
}
return ret;