1. 30 Aug, 2018 1 commit
    • Peter Hutterer's avatar
      touchpad: make tp_detect_jumps() time-independent · 7d0e1875
      Peter Hutterer authored
      This function expected distances per-frame, not per-time which gives us
      different behaviors depending on the hardware scanout rate. Fix this by
      normalizing to a 12ms frame rate which reflects the touchpad I measured all
      the existing thresholds on.
      
      This is a bit of a problem for the test suite which doesn't use proper
      intervals and the change to do so is rather invasive. So for now we set the
      interval for test devices to whatever the time delta is so we can test the
      jumps without having to worry about intervals.
      
      Fixes #121
      
      Signed-off-by: Peter Hutterer's avatarPeter Hutterer <peter.hutterer@who-t.net>
      7d0e1875
  2. 22 Aug, 2018 1 commit
    • Kim Lindberger's avatar
      Add quirk to control velocity averaging, disable it by default · 99334e11
      Kim Lindberger authored
      libinput applies averaging to the velocity of most pointer devices. Averaging
      the velocity makes the motion look smooth and may be of benefit to bad input
      devices. For good devices, however, it comes at the unfortunate price of
      decreased accuaracy.
      
      This change turns velocity averaging off by default (sets ntrackers to 2 instead
      of 16) and allows for it to be turned back on via a quirk, for bad devices which
      require it.
      99334e11
  3. 03 Aug, 2018 1 commit
  4. 16 Jul, 2018 1 commit
  5. 11 Jul, 2018 1 commit
  6. 31 May, 2018 1 commit
  7. 29 May, 2018 1 commit
  8. 17 May, 2018 1 commit
  9. 30 Apr, 2018 1 commit
  10. 26 Apr, 2018 1 commit
  11. 25 Apr, 2018 1 commit
  12. 20 Apr, 2018 1 commit
  13. 18 Apr, 2018 1 commit
  14. 12 Apr, 2018 1 commit
  15. 11 Apr, 2018 1 commit
  16. 09 Apr, 2018 1 commit
  17. 08 Mar, 2018 1 commit
    • Peter Hutterer's avatar
      Extract and reset the abs fuzz value for the x/y axes · 1523d8bb
      Peter Hutterer authored
      The kernel fuzz handling is buggy, especially when we want to rely on the fuzz
      value for our hysteresis. But since this is a hw property and (at least
      sometimes) set by the driver, we can't make this a pure libinput hwdb set
      either.
      
      So our workaround is:
      * extract the (non-zero) fuzz into a udev property so we don't lose it
      * set the fuzz to 0 to disable the in-kernel hysteresis
      * overwrite our internal absinfo with the property fuzz
      
      This way we get to use the hw-specified fuzz without having the kernel muck
      around with it. We also get to use the EVDEV_ABS_ values in 60-evdev.hwdb to
      override a driver-set fuzz.
      
      Two drawbacks:
      - we're resetting the kernel fuzz to 0, this affects any other users of the
        device node. That's probably a minor impact only.
      - we can only save this in a udev property there's a risk of this information
        getting lost when playing around with udev rules. That too should be a minor
        issue.
      
      https://bugs.freedesktop.org/show_bug.cgi?id=105303
      
      Signed-off-by: Peter Hutterer's avatarPeter Hutterer <peter.hutterer@who-t.net>
      1523d8bb
  18. 05 Mar, 2018 2 commits
  19. 21 Feb, 2018 1 commit
  20. 13 Feb, 2018 2 commits
  21. 06 Feb, 2018 1 commit
  22. 30 Nov, 2017 1 commit
  23. 19 Nov, 2017 1 commit
    • Peter Hutterer's avatar
      fallback: change to handle the state at EV_SYN time · db3b6fe5
      Peter Hutterer authored
      
      
      The previous approach was to remember the last event and flush it at the right
      time. The new approach is to update the device state during the frame and send
      out the events at EV_SYN time.
      
      This gives us two advantages: we are not dependent on the kernel order of how
      events come in and we can process events depending on other events in the same
      frame. This will come in handy later for button debouncing.
      
      This is also the approach we have in the touchpad and tablet backends.
      
      Two FIXMEs are left in place, the button debouncing code and the lid switch
      code. Both need to be handled in future patches.
      Signed-off-by: Peter Hutterer's avatarPeter Hutterer <peter.hutterer@who-t.net>
      db3b6fe5
  24. 13 Nov, 2017 1 commit
  25. 30 Oct, 2017 1 commit
  26. 25 Sep, 2017 3 commits
  27. 20 Sep, 2017 3 commits
  28. 19 Sep, 2017 1 commit
  29. 05 Sep, 2017 5 commits
  30. 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=100057
      
      Signed-off-by: Peter Hutterer's avatarPeter Hutterer <peter.hutterer@who-t.net>
      55d1bb12