aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/evdev.c8
-rw-r--r--src/evdev.h1
-rw-r--r--src/evdev_axes.c5
-rw-r--r--src/evdev_brain.c17
4 files changed, 26 insertions, 5 deletions
diff --git a/src/evdev.c b/src/evdev.c
index 2d8d120..ba8f862 100644
--- a/src/evdev.c
+++ b/src/evdev.c
@@ -210,6 +210,9 @@ EvdevProc(DeviceIntPtr device, int what)
EvdevKeyOff (device);
}
+ if (what == DEVICE_CLOSE)
+ evdevRemoveDevice(pEvdev);
+
device->public.on = FALSE;
break;
}
@@ -234,10 +237,12 @@ EvdevSwitchMode (ClientPtr client, DeviceIntPtr device, int mode)
else
return !Success;
break;
+#if 0
case SendCoreEvents:
case DontSendCoreEvents:
xf86XInputSetSendCoreEvents (pInfo, (mode == SendCoreEvents));
break;
+#endif
default:
return !Success;
}
@@ -455,8 +460,6 @@ _X_EXPORT InputDriverRec EVDEV = {
0
};
-#ifdef XFree86LOADER
-
static void
EvdevUnplug(pointer p)
{
@@ -492,4 +495,3 @@ _X_EXPORT XF86ModuleData evdevModuleData =
EvdevPlug,
EvdevUnplug
};
-#endif /* XFree86LOADER */
diff --git a/src/evdev.h b/src/evdev.h
index db33546..97f02bf 100644
--- a/src/evdev.h
+++ b/src/evdev.h
@@ -246,6 +246,7 @@ int evdevGetFDForDevice (evdevDevicePtr driver);
Bool evdevStart (InputDriverPtr drv);
Bool evdevNewDriver (evdevDriverPtr driver);
Bool evdevGetBits (int fd, evdevBitsPtr bits);
+void evdevRemoveDevice (evdevDevicePtr device);
int EvdevBtnInit (DeviceIntPtr device);
int EvdevBtnOn (DeviceIntPtr device);
diff --git a/src/evdev_axes.c b/src/evdev_axes.c
index df6eb4b..81dd772 100644
--- a/src/evdev_axes.c
+++ b/src/evdev_axes.c
@@ -633,11 +633,12 @@ EvdevAxesInit (DeviceIntPtr device)
if (!InitValuatorClassDeviceStruct(device, axes,
miPointerGetMotionEvents,
- miPointerGetMotionBufferSize(), 0))
+ miPointerGetMotionBufferSize(), 0,
+ axes))
return !Success;
for (i = 0; i < axes; i++) {
- xf86InitValuatorAxisStruct(device, i, 0, 0, 0, 0, 1);
+ xf86InitValuatorAxisStruct(device, i, 0, -1, 0, 0, 1);
xf86InitValuatorDefaults(device, i);
}
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)
{