libinput/doc
Peter Hutterer de994d135e evdev: add new debouncing code
The current debouncing code monitors events and switches on when events are
too close together. From then on, any event can be delayed.

Vicente Bergas provided an algorithm that avoids most of these delays:
on a button state change we now forward the change without delay but start a
timer. If the button changes state during that timer, the changes are
ignored. On timer expiry, events are sent to match the hardware state
with the client's view of the device. This is only done if needed.

Thus, a press-release sequence of: PRP sends a single press event, a sequence of
PRPR sends press and then the release at the end of the timeout. The timeout
is short enough that the delay should not be noticeable.

This new mode is called the 'bounce' mode. The old mode is now referred to as
'spurious' mode and only covers the case of a button held down that loses
contact. It works as before, monitoring a button for these spurious contact
losses and switching on. When on, button release events are delayed as before.

The whole button debouncing moves to a state machine which makes debugging a
lot easier. See the accompanying SVG for the diagram.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2017-11-20 09:55:05 +10:00
..
dot doc: update the GNOME stack graph 2017-09-28 08:43:38 +10:00
style doc: add a custom css for local overrides 2017-02-23 08:20:20 +10:00
svg evdev: add new debouncing code 2017-11-20 09:55:05 +10:00
absolute-axes.dox doc: improve absolute axis documentation a bit 2016-01-05 12:35:49 +10:00
absolute-coordinate-ranges.dox touchpad: warn if we have invalid touchpad ranges 2016-06-02 08:01:43 +10:00
building.dox doc: update the soname, remove the warning 2017-07-05 11:13:31 +10:00
button-debouncing-state-machine.svg evdev: add new debouncing code 2017-11-20 09:55:05 +10:00
button-debouncing-wave-diagram.txt evdev: add new debouncing code 2017-11-20 09:55:05 +10:00
button_debouncing.dox evdev: add new debouncing code 2017-11-20 09:55:05 +10:00
clickpad-softbuttons.dox touchpad: remove software middle button when emulation is enabled 2016-07-04 09:41:33 +10:00
contributing.dox doc: add a small page about contributing to libinput 2016-10-25 10:02:07 +10:00
device-configuration-via-udev.dox tablet: always enable the no-proximity-out quirk on HUION tablets 2017-09-21 12:27:46 +10:00
faqs.dox doc: add a FAQ regarding "please add a configuration option" 2017-11-08 21:42:16 +10:00
gestures.dox doc: explain the gesture ambiguity for 2-slot touchpads 2016-01-20 15:38:13 +10:00
libinput.doxygen.in doc: quote all paths in the doxygen file 2017-11-01 14:54:59 +10:00
middle-button-emulation.dox doc: split middle button emulation into a separate page 2016-08-15 08:02:37 +10:00
middle-button-emulation.svg evdev: add support for middle button emulation 2015-04-17 12:50:03 +10:00
normalization-of-relative-motion.dox tablet: add support for relative x/y motion deltas 2016-01-22 16:16:55 +10:00
page-hierarchy.dox pointer: add button debouncing 2017-07-26 00:21:46 +10:00
palm-detection.dox touchpad: add upper edge into exclusion zone 2017-07-10 09:33:24 +10:00
pointer-acceleration.dox filter: add a custom trackpoint accelerator 2017-07-20 11:53:01 +10:00
reporting-bugs.dox doc: reshuffle the "reporting bugs" page 2016-10-19 10:21:51 +10:00
scrolling.dox touchpad: disable 2fg scrolling on Synaptics semi-mt touchpads 2015-07-27 19:34:42 +10:00
seats.dox doc: fix more typos 2015-08-22 16:03:29 +10:00
switches.dox doc: add a section for tablet mode switches 2017-09-29 08:13:44 +10:00
t440-support.dox Fix spelling mistakes 2016-04-06 07:42:03 +10:00
tablet-support.dox tablet: print what capability is missing when rejecting a device 2017-10-26 11:01:29 +10:00
tapping.dox doc: expand on the default tap settings 2017-03-09 14:03:22 +10:00
test-suite.dox doc: update test suite page for ninja and other recent changes 2017-11-02 10:38:54 +10:00
timestamps.dox doc: document the event timestamps 2017-05-02 15:32:19 +10:00
tools.dox doc: update for the new libinput tool 2017-06-02 12:21:35 +10:00
touchpad-edge-scrolling-state-machine.svg touchpad: Add edge-scrolling support 2014-11-25 17:02:30 +10:00
touchpad-jumping-cursors.dox touchpad: detect and warn about kernel tracking pointer jumps 2016-04-28 10:01:20 +10:00
touchpad-pressure.dox tools: add a tool to measure touch pressure 2017-07-03 15:58:58 +10:00
touchpad-softbutton-state-machine.svg touchpad: Route top softbuttons through the trackstick if we've one 2014-09-19 08:20:00 +10:00
touchpad-tap-state-machine.svg touchpad: add a config option to disable tap-and-drag 2016-01-27 10:03:28 +10:00
touchpads.dox doc: fix more typos 2015-08-22 16:03:29 +10:00
what-is-libinput.dox doc: add a page "what is libinput" 2017-02-13 10:47:11 +10:00