diff options
author | Chase Douglas <chase.douglas@canonical.com> | 2011-11-29 18:02:58 -0800 |
---|---|---|
committer | Chase Douglas <chase.douglas@canonical.com> | 2011-11-29 18:02:58 -0800 |
commit | cf93a21df1dd66118d3a1f5a0769d48f317de749 (patch) | |
tree | 355c2ddbf7337bf86071ca6ab67f89bc30a40833 | |
parent | fac1a41c75a7c4bfabff34dc8ed1dff2587c6011 (diff) |
Don't send pointer events for multitouch touchscreen devices
Pointer events will be emulated by the server.
Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
-rw-r--r-- | src/evdev.c | 11 |
1 files 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. */ |