From cf93a21df1dd66118d3a1f5a0769d48f317de749 Mon Sep 17 00:00:00 2001 From: Chase Douglas Date: Tue, 29 Nov 2011 18:02:58 -0800 Subject: Don't send pointer events for multitouch touchscreen devices Pointer events will be emulated by the server. Signed-off-by: Chase Douglas --- src/evdev.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/evdev.c b/src/evdev.c index f88074b..760f3ce 100644 --- a/src/evdev.c +++ b/src/evdev.c @@ -781,14 +781,14 @@ EvdevProcessAbsoluteMotionEvent(InputInfoPtr pInfo, struct input_event *ev) if (EvdevWheelEmuFilterMotion(pInfo, ev)) return; - if (ev->code >= ABS_MT_SLOT) + if (ev->code >= ABS_MT_SLOT) { EvdevProcessTouchEvent(pInfo, ev); - else { + pEvdev->abs_queued = 1; + } else if (!pEvdev->mt_mask) { map = pEvdev->axis_map[ev->code]; valuator_mask_set(pEvdev->vals, map, value); + pEvdev->abs_queued = 1; } - - pEvdev->abs_queued = 1; } /** @@ -823,7 +823,8 @@ EvdevProcessKeyEvent(InputInfoPtr pInfo, struct input_event *ev) * BTN_TOUCH as the proximity notifier */ if (!pEvdev->use_proximity) pEvdev->in_proximity = value ? ev->code : 0; - if (!(pEvdev->flags & (EVDEV_TOUCHSCREEN | EVDEV_TABLET))) + if (!(pEvdev->flags & (EVDEV_TOUCHSCREEN | EVDEV_TABLET)) || + pEvdev->mt_mask) break; /* Treat BTN_TOUCH from devices that only have BTN_TOUCH as * BTN_LEFT. */ -- cgit v1.2.3