1. 15 Jul, 2018 1 commit
  2. 29 Jun, 2018 1 commit
  3. 21 May, 2018 1 commit
  4. 26 Apr, 2018 1 commit
  5. 16 Apr, 2018 1 commit
  6. 23 Mar, 2018 1 commit
  7. 13 Feb, 2018 1 commit
  8. 19 Nov, 2017 2 commits
    • Peter Hutterer's avatar
      evdev: add new debouncing code · de994d13
      Peter Hutterer authored
      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's avatarPeter Hutterer <peter.hutterer@who-t.net>
      de994d13
    • Peter Hutterer's avatar
      test: replace litest_button_click with a debounced version · 8cf6893f
      Peter Hutterer authored
      This is via a simple search & replace. Later auditing is needed to switch
      clicks that should not be debounced (e.g. touchpads) back to a non-debounced
      version.
      Signed-off-by: Peter Hutterer's avatarPeter Hutterer <peter.hutterer@who-t.net>
      8cf6893f
  9. 08 Nov, 2017 1 commit
  10. 25 Jul, 2017 1 commit
    • Peter Hutterer's avatar
      pointer: add button debouncing · 55d1bb12
      Peter Hutterer authored
      Some devices have worn-out switches or just cheap switches that trigger
      multiple button events for each press. These can be identified by unfeasably
      short time deltas between the release and the next press event. In the
      recordings I've seen so far, that timeout is 8ms.
      
      We have a two-stage behavior: by default, we do not delay any events but we
      monitor timestamps. The first time a bouncing button is detected we switch to
      debounce mode. From then on, release events are delayed slightly to check for
      subsequent button events. If one occurs, the releas and press are filtered. If
      none occurs, the release event is passed to the caller.
      
      https://bugs.freedesktop.org/show_bug.cgi?id=100057Signed-off-by: Peter Hutterer's avatarPeter Hutterer <peter.hutterer@who-t.net>
      55d1bb12
  11. 24 Jul, 2017 1 commit
  12. 20 Jul, 2017 1 commit
  13. 19 Jul, 2017 1 commit
  14. 24 Apr, 2017 1 commit
    • Peter Hutterer's avatar
      evdev: improve default scroll button detection · 555ee1a9
      Peter Hutterer authored
      Try to guess the default scroll buttons a bit better. Right now we default to
      scroll button 0 (disabled) whenever a device doesn't have a middle button but
      we might as well cast a wider net here as setting a scroll button only has a
      direct effect when button scrolling is enabled.
      
      Use the first extra button we find or fall back onto the right button if we
      don't have any extra buttons.
      Signed-off-by: Peter Hutterer's avatarPeter Hutterer <peter.hutterer@who-t.net>
      555ee1a9
  15. 20 Feb, 2017 8 commits
  16. 08 Feb, 2017 1 commit
  17. 06 Feb, 2017 3 commits
  18. 01 Feb, 2017 1 commit
  19. 20 Jan, 2017 2 commits
  20. 16 Jan, 2017 1 commit
  21. 15 Jan, 2017 1 commit
  22. 05 Dec, 2016 1 commit
  23. 04 Nov, 2016 1 commit
  24. 22 Aug, 2016 1 commit
  25. 02 Aug, 2016 1 commit
  26. 03 Jul, 2016 1 commit
  27. 14 Apr, 2016 3 commits