libinput/src
Peter Hutterer c863ab5c8e fallback: send key events out immediately upon receiving them
Commit db3b6fe5f7 "fallback: change to handle the state at EV_SYN time"
introduced regressions for two types of event sequences.

One is a kernel bug - some devices/drivers like the asus-wireless send a key
press + release within the same event frame which now cancels out and
disappears into the ether. This should be fixed in the kernel drivers but
there appear to be enough of them that we can't just pretend it's an outlier.

The second issue is a libinput bug. If we get two key events in the same frame
(e.g. shift + A) we update the state correctly but the events are sent in the
order of the event codes. KEY_A sorts before KEY_LEFTSHIFT and our shift + A
becomes A + shift.

Fix this by treating key events as before db3b6fe5f7 - by sending them out
as we get them.

https://bugs.freedesktop.org/show_bug.cgi?id=104030

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
(cherry picked from commit 1c8636923b)
2017-12-08 10:28:56 +10:00
..
evdev-debounce.c debounce: handle a timeout in MAYBE_SPURIOUS state 2017-11-28 12:44:41 +10:00
evdev-fallback.c fallback: send key events out immediately upon receiving them 2017-12-08 10:28:56 +10:00
evdev-fallback.h evdev: add new debouncing code 2017-11-28 12:44:41 +10:00
evdev-middle-button.c evdev: fix a coverity warning 2017-10-10 08:05:28 +10:00
evdev-mt-touchpad-buttons.c touchpad: post a SYN_REPORT after a faked trackpoint button 2017-11-28 12:44:41 +10:00
evdev-mt-touchpad-edge-scroll.c touchpad: ignore thumbs during edge scrolling 2017-09-01 16:06:40 +10:00
evdev-mt-touchpad-gestures.c gestures: don't try to pinch for nfingers > slots 2017-08-01 16:42:03 +01:00
evdev-mt-touchpad-tap.c timer: add a timer name to each timer 2017-07-10 12:00:50 +10:00
evdev-mt-touchpad.c touchpad: post a SYN_REPORT after a faked trackpoint button 2017-11-28 12:44:41 +10:00
evdev-mt-touchpad.h touchpad: allow for multiple paired keyboards 2017-11-14 14:28:29 +10:00
evdev-tablet-pad-leds.c Abort if zalloc ever fails 2017-07-12 10:18:07 +10:00
evdev-tablet-pad.c evdev: abstract the get_switch_state method 2017-09-25 15:13:37 +10:00
evdev-tablet-pad.h util: harmonize container_of() definition with linux kernel one 2017-05-17 15:04:41 +10:00
evdev-tablet.c tablet: print what capability is missing when rejecting a device 2017-10-26 11:01:29 +10:00
evdev-tablet.h tablet: always enable the no-proximity-out quirk on HUION tablets 2017-09-21 12:27:46 +10:00
evdev.c evdev: fix axis mixup for the wheel click angles 2017-11-28 12:44:41 +10:00
evdev.h fallback: change to handle the state at EV_SYN time 2017-11-28 12:44:41 +10:00
filter-private.h filter: change the filter functions to take raw device coordinates 2016-12-21 10:55:57 +10:00
filter.c filter: don't allow an accel factor of 0 on the flat profile 2017-09-11 08:30:34 +10:00
filter.h touchpad: Enable timestamp smoothing support for bluetooth touchpads 2017-08-01 16:42:19 +01:00
libinput-private.h timer: flush the timer funcs if our events come in late 2017-09-21 12:27:46 +10:00
libinput-restore-selinux-context.sh Skip restorecon if it cannot be found 2017-06-23 09:58:42 +10:00
libinput-uninstalled.pc.in buildsystem: add missing uninstalled pkg-config infra 2016-08-30 17:18:39 +10:00
libinput-util.c util: add an extra assert for list_insert() 2017-10-18 16:17:22 +10:00
libinput-util.h Add helper function for time to timeval conversion 2017-09-14 09:43:51 +10:00
libinput-version.h.in COPYING: Update boilerplate from MIT X11 to MIT Expat license 2015-06-16 14:36:04 +10:00
libinput.c Add libinput_device_switch_has_switch() 2017-09-06 09:24:29 +10:00
libinput.h Add support for SW_TABLET_MODE 2017-09-06 09:26:00 +10:00
libinput.pc.in Add -lrt to the libs 2014-07-03 09:59:43 +10:00
libinput.sym Add libinput_device_switch_has_switch() 2017-09-06 09:24:29 +10:00
path-seat.c Add safe_strdup() 2017-07-12 15:39:31 +10:00
path-seat.h path: remove unused declaration of path_input_process_event 2017-02-01 16:59:58 +10:00
timer.c timer: flush the timer funcs if our events come in late 2017-09-21 12:27:46 +10:00
timer.h timer: flush the timer funcs if our events come in late 2017-09-21 12:27:46 +10:00
udev-seat.c Add safe_strdup() 2017-07-12 15:39:31 +10:00
udev-seat.h COPYING: Update boilerplate from MIT X11 to MIT Expat license 2015-06-16 14:36:04 +10:00