summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlos Garnacho <carlosg@gnome.org>2010-06-01 13:41:45 +0200
committerCarlos Garnacho <carlosg@gnome.org>2010-06-02 01:11:21 +0200
commitf0ecd234b78dfa83c535c2b104e98716e1322863 (patch)
treece2cf68d8409141a6ce90e8ccc99f2636cb756d8
parent1223ebc46007860a7ca4bf1a36aac89b394a3edb (diff)
Do not set XI86_POINTER_CAPABLE for touchpoints.
This would mean "this device can't be a core pointer", but the flag isn't honored yet in the server. The final purpose is that touchpoints shouldn't be attached to any MD.
-rw-r--r--src/evdev.c31
1 files changed, 17 insertions, 14 deletions
diff --git a/src/evdev.c b/src/evdev.c
index cab01e7..ab67664 100644
--- a/src/evdev.c
+++ b/src/evdev.c
@@ -1628,21 +1628,24 @@ EvdevAddAbsClass(DeviceIntPtr device)
if (!InitPtrFeedbackClassDeviceStruct(device, EvdevPtrCtrlProc))
return !Success;
- if ((TestBit(ABS_X, pEvdev->abs_bitmask) &&
- TestBit(ABS_Y, pEvdev->abs_bitmask)) ||
- (TestBit(ABS_RX, pEvdev->abs_bitmask) &&
- TestBit(ABS_RY, pEvdev->abs_bitmask)) ||
- (TestBit(ABS_HAT0X, pEvdev->abs_bitmask) &&
- TestBit(ABS_HAT0Y, pEvdev->abs_bitmask)) ||
- (TestBit(ABS_HAT1X, pEvdev->abs_bitmask) &&
- TestBit(ABS_HAT1Y, pEvdev->abs_bitmask)) ||
- (TestBit(ABS_HAT2X, pEvdev->abs_bitmask) &&
- TestBit(ABS_HAT2Y, pEvdev->abs_bitmask)) ||
- (TestBit(ABS_HAT3X, pEvdev->abs_bitmask) &&
- TestBit(ABS_HAT3Y, pEvdev->abs_bitmask)) ||
- (TestBit(ABS_TILT_X, pEvdev->abs_bitmask) &&
- TestBit(ABS_TILT_Y, pEvdev->abs_bitmask)))
+ if (EvdevIsCoreDevice(pInfo) &&
+ ((TestBit(ABS_X, pEvdev->abs_bitmask) &&
+ TestBit(ABS_Y, pEvdev->abs_bitmask)) ||
+ (TestBit(ABS_RX, pEvdev->abs_bitmask) &&
+ TestBit(ABS_RY, pEvdev->abs_bitmask)) ||
+ (TestBit(ABS_HAT0X, pEvdev->abs_bitmask) &&
+ TestBit(ABS_HAT0Y, pEvdev->abs_bitmask)) ||
+ (TestBit(ABS_HAT1X, pEvdev->abs_bitmask) &&
+ TestBit(ABS_HAT1Y, pEvdev->abs_bitmask)) ||
+ (TestBit(ABS_HAT2X, pEvdev->abs_bitmask) &&
+ TestBit(ABS_HAT2Y, pEvdev->abs_bitmask)) ||
+ (TestBit(ABS_HAT3X, pEvdev->abs_bitmask) &&
+ TestBit(ABS_HAT3Y, pEvdev->abs_bitmask)) ||
+ (TestBit(ABS_TILT_X, pEvdev->abs_bitmask) &&
+ TestBit(ABS_TILT_Y, pEvdev->abs_bitmask))))
+ {
pInfo->flags |= XI86_POINTER_CAPABLE;
+ }
if (pEvdev->flags & EVDEV_TOUCHPAD)
pEvdev->flags |= EVDEV_RELATIVE_MODE;