aboutsummaryrefslogtreecommitdiff
path: root/src/evdev_brain.c
diff options
context:
space:
mode:
authorDaniel Stone <daniel.stone@nokia.com>2006-07-19 19:41:54 -0400
committerDaniel Stone <daniels@endtroducing.fooishbar.org>2006-07-19 19:41:54 -0400
commit1cb568c0a6c18ec62ebb89ca21a22a77c78cad24 (patch)
tree910dea85f9fa52d7922c56cb45b3f6eb84736859 /src/evdev_brain.c
parentremove XFree86LOADER usage (diff)
downloadxf86-input-evdev-1cb568c0a6c18ec62ebb89ca21a22a77c78cad24.tar.gz
xf86-input-evdev-1cb568c0a6c18ec62ebb89ca21a22a77c78cad24.tar.bz2
xf86-input-evdev-1cb568c0a6c18ec62ebb89ca21a22a77c78cad24.zip
prune device list on DEVICE_CLOSE
Remove a device from the device list when we get DEVICE_CLOSE.
Diffstat (limited to 'src/evdev_brain.c')
-rw-r--r--src/evdev_brain.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/evdev_brain.c b/src/evdev_brain.c
index 6365577..246666f 100644
--- a/src/evdev_brain.c
+++ b/src/evdev_brain.c
@@ -462,6 +462,23 @@ evdevNewDriver (evdevDriverPtr driver)
return TRUE;
}
+void
+evdevRemoveDevice (evdevDevicePtr pEvdev)
+{
+ evdevDriverPtr driver;
+ evdevDevicePtr *device;
+
+ for (driver = evdev_drivers; driver; driver = driver->next) {
+ for (device = &driver->devices; *device; device = &(*device)->next) {
+ if (*device == pEvdev) {
+ *device = pEvdev->next;
+ pEvdev->next = NULL;
+ return;
+ }
+ }
+ }
+}
+
Bool
evdevGetBits (int fd, evdevBitsPtr bits)
{