From 26229df106f604ffad9a602e128108e93678c403 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Tue, 14 Oct 2008 16:45:44 +1030 Subject: Don't init draglock, etc. if we don't have the required capabilities. (cherry picked from commit 0f5a5ac09ebc89e984b72d395475bb9f412e240c) --- src/evdev.c | 31 +++++++++++++++++++------------ 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/src/evdev.c b/src/evdev.c index 73c20d8..558b996 100644 --- a/src/evdev.c +++ b/src/evdev.c @@ -1357,9 +1357,12 @@ EvdevPreInit(InputDriverPtr drv, IDevPtr dev, int flags) EvdevCacheCompare(pInfo, FALSE); /* cache device data */ - EvdevMBEmuPreInit(pInfo); - EvdevWheelEmuPreInit(pInfo); - EvdevDragLockPreInit(pInfo); + if (pEvdev->flags & EVDEV_BUTTON_EVENTS) + { + EvdevMBEmuPreInit(pInfo); + EvdevWheelEmuPreInit(pInfo); + EvdevDragLockPreInit(pInfo); + } return pInfo; } @@ -1463,18 +1466,22 @@ EvdevInitProperty(DeviceIntPtr dev) BOOL invert[2]; char reopen; - invert[0] = pEvdev->invert_x; - invert[1] = pEvdev->invert_y; - prop_invert = MakeAtom(EVDEV_PROP_INVERT_AXES, strlen(EVDEV_PROP_INVERT_AXES), TRUE); + if (pEvdev->flags & (EVDEV_RELATIVE_EVENTS | EVDEV_ABSOLUTE_EVENTS)) + { + invert[0] = pEvdev->invert_x; + invert[1] = pEvdev->invert_y; + + prop_invert = MakeAtom(EVDEV_PROP_INVERT_AXES, strlen(EVDEV_PROP_INVERT_AXES), TRUE); - rc = XIChangeDeviceProperty(dev, prop_invert, XA_INTEGER, 8, - PropModeReplace, 2, - invert, FALSE); - if (rc != Success) - return; + rc = XIChangeDeviceProperty(dev, prop_invert, XA_INTEGER, 8, + PropModeReplace, 2, + invert, FALSE); + if (rc != Success) + return; - XISetDevicePropertyDeletable(dev, prop_invert, FALSE); + XISetDevicePropertyDeletable(dev, prop_invert, FALSE); + } prop_reopen = MakeAtom(EVDEV_PROP_REOPEN, strlen(EVDEV_PROP_REOPEN), TRUE); -- cgit v1.2.3