aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@redhat.com>2008-10-14 16:45:44 +1030
committerPeter Hutterer <peter.hutterer@redhat.com>2008-10-14 17:18:07 +1030
commit26229df106f604ffad9a602e128108e93678c403 (patch)
tree4abcbd40cc0cb6bd1b04480aec45cdad463931c4
parent8-bit properties should use 8-bit storage types... (diff)
downloadxf86-input-evdev-26229df106f604ffad9a602e128108e93678c403.tar.gz
xf86-input-evdev-26229df106f604ffad9a602e128108e93678c403.tar.bz2
xf86-input-evdev-26229df106f604ffad9a602e128108e93678c403.zip
Don't init draglock, etc. if we don't have the required capabilities.
(cherry picked from commit 0f5a5ac09ebc89e984b72d395475bb9f412e240c)
-rw-r--r--src/evdev.c31
1 files 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);