http://wiki.qt.io/WestonTouchScreenIssues
From c4633014fff25d32926129a8b028124c6338bb2b Mon Sep 17 00:00:00 2001 From: Louai Al-Khanji <louai.al-khanji@theqtcompany.com> Date: Wed, 19 Aug 2015 09:04:46 +0300 Subject: [PATCH 1/1] Adapt changes made in libinput/src/evdev.c for touch frame emission. --- src/evdev.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/evdev.c b/src/evdev.c index 888dfbd..daa5d72 100644 --- a/src/evdev.c +++ b/src/evdev.c @@ -359,12 +359,36 @@ evdev_process_absolute(struct evdev_device *device, } } +static inline int +evdev_need_touch_frame(struct evdev_device *device) +{ + if (!(device->seat_caps & EVDEV_SEAT_TOUCH)) + return 0; + + switch (device->pending_event) { + case EVDEV_NONE: + case EVDEV_RELATIVE_MOTION: + break; + case EVDEV_ABSOLUTE_MT_DOWN: + case EVDEV_ABSOLUTE_MT_MOTION: + case EVDEV_ABSOLUTE_MT_UP: + case EVDEV_ABSOLUTE_TOUCH_DOWN: + case EVDEV_ABSOLUTE_TOUCH_UP: + case EVDEV_ABSOLUTE_MOTION: + return 1; + } + + return 0; +} + static void fallback_process(struct evdev_dispatch *dispatch, struct evdev_device *device, struct input_event *event, uint32_t time) { + int need_frame = 0; + switch (event->type) { case EV_REL: evdev_process_relative(device, event, time); @@ -376,7 +400,10 @@ fallback_process(struct evdev_dispatch *dispatch, evdev_process_key(device, event, time); break; case EV_SYN: + need_frame = evdev_need_touch_frame(device); evdev_flush_pending_event(device, time); + if (need_frame) + notify_touch_frame(device->seat); break; } } -- 2.1.4 |
https://cgit.freedesktop.org/wayland/libinput
'Linux > Wayland' 카테고리의 다른 글
[weston] Boot touch ISSUE (0) | 2018.02.12 |
---|---|
[Wayland] Install Ubuntu14.04 (0) | 2017.07.09 |
Wayland FAQ (0) | 2016.06.23 |
wayland 관련 정보 참고 사이트 (0) | 2016.06.20 |