1. 21 Mar, 2019 3 commits
    • Peter Hutterer's avatar
      Add LIBINPUT_EVENT_POINTER_AXIS_WHEEL to get normalized wheel scrolling · 122f8225
      Peter Hutterer authored
      Starting with kernel v5.0 two new axes are available for high-resolution wheel
      scrolling: REL_WHEEL_HI_RES and REL_HWHEEL_HI_RES. Both axes send data in
      fractions of 120 where each multiple of 120 amounts to one logical scroll
      event. Fractions of 120 indicate a wheel movement less than one detent.
      
      This commit adds a new API for pointer axis events. A new event type and a new
      API to get a normalized-to-120 value also used by Windows and the kernel, each
      multiple of 120 represents a logical scroll click.
      
      This addresses a main shortcoming with the existing API - it was unreliable to
      calculate the click angle based on the axis value+discrete events and thus any
      caller using the axis value alone would be left with some ambiguity. With the
      v120 API it's now possible to (usually) calculate the click angle, but more
      importantly it provides the simplest hw-independent way of scrolling by a
      click or a fraction of a click.
      
      A new event type is required, the only way to integrate the v120 value
      otherwise was to start sending events with a discrete value of 0. This
      would break existing xf86-input-libinput (divide by zero, fixed in 0.28.2) and
      weston (general confusion). mutter, kwin are unaffected.
      
      Notable: REL_WHEEL/REL_HWHEEL are emulated by the kernel but there's no
      guarantee that they'll come every accumulated 120 values, e.g. Logitech mice
      often send events that don't add up to 120 per detent.
      
      We use the kernel's wheel click emulation instead of doing our own.
      Signed-off-by: Peter Hutterer's avatarPeter Hutterer <peter.hutterer@who-t.net>
      122f8225
    • Peter Hutterer's avatar
      libinput 1.12.902 · c11810a4
      Peter Hutterer authored
      Signed-off-by: Peter Hutterer's avatarPeter Hutterer <peter.hutterer@who-t.net>
      c11810a4
    • Benjamin Poirier's avatar
      evdev: Rename button up and down states to mirror each other · 5e798a2a
      Benjamin Poirier authored
      The button up debouncing states mirror the button down states with the
      addition of the spurious debouncing states. Rename the states to better
      show this symmetry.
      5e798a2a
  2. 18 Mar, 2019 1 commit
    • Paolo Giangrandi's avatar
      touchpad: multitap state transitions use the same timing used for taps · a88d73ce
      Paolo Giangrandi authored
      Multitap sequences (more than 2 taps) had a 180ms timer set only on press,
      not on release.
      New taps within those 180ms could either trigger multitap+drag or another
      multitap (for N+1 taps), resetting the timer on press once again.
      If no new tap appears within those 180ms, the sequence was considered
      complete.
      
      This behavior differed from regular taps: for the very first tap of a
      sequence the timer was set both on touch and on release.
      
      The multitap timing caused misdetection of triple-tap-and-drag sequences as
      the timer was hit frequently. Some of those were correctly detected, others
      as tripletap only.
      
      Changing the timer to be set on press **and** release gives us a more lenient
      timeout. 180ms for tap-and-drag and 180ms for the next tap down after
      release. This was also the behavior for the xorg synaptics driver.
      
      Note that quadruple-tap-and-drag didn't suffer from this because the timeout
      resulted in double-tap + double-tap-and-drag. Which has the same
      user-visible effect.
      a88d73ce
  3. 17 Mar, 2019 1 commit
  4. 15 Mar, 2019 2 commits
  5. 14 Mar, 2019 11 commits
  6. 12 Mar, 2019 5 commits
  7. 06 Mar, 2019 1 commit
  8. 04 Mar, 2019 5 commits
  9. 19 Feb, 2019 1 commit
    • Henré Botha's avatar
      Reduce button scroll timeout to 38ms · 5dae7aac
      Henré Botha authored
      When using button scrolling, a hardcoded delay of 200 milliseconds between
      button down and scroll events being emitted makes fast scrolling gestures feel
      clunky and sometimes fail entirely. This feature comes from
      xf86-input-mouse, was copied into xf86-input-evdev and reimplemented in
      libinput.
      
      This was, as far as can be determined, to allow right clicks without
      triggering scrolling. libinput now also has distance triggers (2bbf4a01)
      and sends button events if no movement has happened for long clicks,
      regardless of the delay.
      
      The 200ms delay is thus not really necessary anymore, let's drop it to 38ms
      which is just above the 3-event threshold for 8/10/12ms intervals which is
      most devices.
      
      Fixes #237Signed-off-by: Peter Hutterer's avatarPeter Hutterer <peter.hutterer@who-t.net>
      5dae7aac
  10. 18 Feb, 2019 1 commit
  11. 14 Feb, 2019 9 commits