libinput/src
Peter Hutterer bb05e0d1b5 plugin/wheel: don't accumulate for low HID resolution multipliers
Accumulating (and partially discarding) scroll wheel events serves to
debounce a scroll wheel and provide for more fluid scrolling where
scroll wheels can send events going in the wrong direction.

This is unlikely to happen on devices with low resolution multipliers
(i.e. where some significant physical movement by the wheel is required
to trigger events) so let's make it contingent on devices more likely to
have flaky wheels.

The magic threshold picked is 30 (HID resolution multiplier of 4) as a
guess. The resolution multiplier isn't accessible in userspace so we
have to heuristically get to it - typical interaction with a mouse will
have that value set within the first two, three scroll wheel events
though.

Closes #1150

Part-of: <https://gitlab.freedesktop.org/libinput/libinput/-/merge_requests/1261>
2025-07-09 01:46:41 +00:00
..
builddir.h Run clang-format over the code 2025-07-01 16:42:44 +10:00
evdev-fallback.c Move mtdev into a plugin 2025-07-02 06:53:05 +00:00
evdev-fallback.h Run clang-format over the code 2025-07-01 16:42:44 +10:00
evdev-frame.h Add evdev_frame_append_one() 2025-07-02 06:53:05 +00:00
evdev-middle-button.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
evdev-mt-touchpad-buttons.c Switch our internal dispatch interface to take an evdev frame 2025-07-02 06:53:05 +00:00
evdev-mt-touchpad-edge-scroll.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
evdev-mt-touchpad-gestures.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
evdev-mt-touchpad-tap.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
evdev-mt-touchpad-thumb.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
evdev-mt-touchpad.c Switch our internal dispatch interface to take an evdev frame 2025-07-02 06:53:05 +00:00
evdev-mt-touchpad.h Run clang-format over the code 2025-07-01 16:42:44 +10:00
evdev-plugin.c Move mtdev into a plugin 2025-07-02 06:53:05 +00:00
evdev-plugin.h Run clang-format over the code 2025-07-01 16:42:44 +10:00
evdev-tablet-pad-leds.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
evdev-tablet-pad.c Switch our internal dispatch interface to take an evdev frame 2025-07-02 06:53:05 +00:00
evdev-tablet-pad.h Run clang-format over the code 2025-07-01 16:42:44 +10:00
evdev-tablet.c Switch our internal dispatch interface to take an evdev frame 2025-07-02 06:53:05 +00:00
evdev-tablet.h Run clang-format over the code 2025-07-01 16:42:44 +10:00
evdev-totem.c Switch our internal dispatch interface to take an evdev frame 2025-07-02 06:53:05 +00:00
evdev.c evdev: discard any frame with EV_SYN SYN_REPORT 1 2025-07-02 23:32:32 +00:00
evdev.h Move mtdev into a plugin 2025-07-02 06:53:05 +00:00
filter-custom.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
filter-flat.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
filter-low-dpi.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
filter-mouse.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
filter-private.h Run clang-format over the code 2025-07-01 16:42:44 +10:00
filter-tablet.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
filter-touchpad-flat.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
filter-touchpad-x230.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
filter-touchpad.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
filter-trackpoint-flat.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
filter-trackpoint.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
filter.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
filter.h Run clang-format over the code 2025-07-01 16:42:44 +10:00
libinput-git-version.h.in tools: add the git version in the libinput-record output 2018-03-06 14:22:30 +10:00
libinput-log.h Run clang-format over the code 2025-07-01 16:42:44 +10:00
libinput-plugin-button-debounce.c plugin: use evdev_frame_append_one() for simpler code 2025-07-08 04:02:50 +00:00
libinput-plugin-button-debounce.h Run clang-format over the code 2025-07-01 16:42:44 +10:00
libinput-plugin-mouse-wheel.c plugin/wheel: don't accumulate for low HID resolution multipliers 2025-07-09 01:46:41 +00:00
libinput-plugin-mouse-wheel.h Run clang-format over the code 2025-07-01 16:42:44 +10:00
libinput-plugin-mtdev.c Move mtdev into a plugin 2025-07-02 06:53:05 +00:00
libinput-plugin-mtdev.h Move mtdev into a plugin 2025-07-02 06:53:05 +00:00
libinput-plugin-private.h Add an internal plugin system to libinput 2025-06-18 06:18:53 +00:00
libinput-plugin-system.h Run clang-format over the code 2025-07-01 16:42:44 +10:00
libinput-plugin-tablet-double-tool.c Add evdev_frame_append_one() 2025-07-02 06:53:05 +00:00
libinput-plugin-tablet-double-tool.h Run clang-format over the code 2025-07-01 16:42:44 +10:00
libinput-plugin-tablet-eraser-button.c Add evdev_frame_append_one() 2025-07-02 06:53:05 +00:00
libinput-plugin-tablet-eraser-button.h Run clang-format over the code 2025-07-01 16:42:44 +10:00
libinput-plugin-tablet-forced-tool.c plugin: use evdev_frame_append_one() for simpler code 2025-07-08 04:02:50 +00:00
libinput-plugin-tablet-forced-tool.h Run clang-format over the code 2025-07-01 16:42:44 +10:00
libinput-plugin-tablet-proximity-timer.c Add evdev_frame_append_one() 2025-07-02 06:53:05 +00:00
libinput-plugin-tablet-proximity-timer.h Run clang-format over the code 2025-07-01 16:42:44 +10:00
libinput-plugin.c Move mtdev into a plugin 2025-07-02 06:53:05 +00:00
libinput-plugin.h Run clang-format over the code 2025-07-01 16:42:44 +10:00
libinput-private-config.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
libinput-private-config.h gesutures: allow to configure hold gestures 2021-06-09 01:18:58 +00:00
libinput-private.h Run clang-format over the code 2025-07-01 16:42:44 +10:00
libinput-restore-selinux-context.sh meson: Fix absolute libdir case in install script 2018-02-16 16:57:30 +10:00
libinput-util.h Run clang-format over the code 2025-07-01 16:42:44 +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-versionsort.h Run clang-format over the code 2025-07-01 16:42:44 +10:00
libinput.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
libinput.h Run clang-format over the code 2025-07-01 16:42:44 +10:00
libinput.sym Add an API for configurable eraser button behavior 2025-06-18 19:38:14 +10:00
path-seat.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
quirks.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
quirks.h Run clang-format over the code 2025-07-01 16:42:44 +10:00
timer.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
timer.h Run clang-format over the code 2025-07-01 16:42:44 +10:00
udev-seat.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
udev-seat.h Run clang-format over the code 2025-07-01 16:42:44 +10:00
util-backtrace.h Run clang-format over the code 2025-07-01 16:42:44 +10:00
util-bits.h Run clang-format over the code 2025-07-01 16:42:44 +10:00
util-files.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
util-files.h Run clang-format over the code 2025-07-01 16:42:44 +10:00
util-input-event.h Run clang-format over the code 2025-07-01 16:42:44 +10:00
util-libinput.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
util-libinput.h Move the event printing out into a utility 2025-03-13 06:13:38 +00:00
util-list.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
util-list.h Run clang-format over the code 2025-07-01 16:42:44 +10:00
util-macros.h Run clang-format over the code 2025-07-01 16:42:44 +10:00
util-matrix.h Run clang-format over the code 2025-07-01 16:42:44 +10:00
util-mem.h Run clang-format over the code 2025-07-01 16:42:44 +10:00
util-multivalue.h Run clang-format over the code 2025-07-01 16:42:44 +10:00
util-newtype.h Run clang-format over the code 2025-07-01 16:42:44 +10:00
util-prop-parsers.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
util-prop-parsers.h Run clang-format over the code 2025-07-01 16:42:44 +10:00
util-range.h Run clang-format over the code 2025-07-01 16:42:44 +10:00
util-ratelimit.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
util-ratelimit.h Run clang-format over the code 2025-07-01 16:42:44 +10:00
util-stringbuf.h Run clang-format over the code 2025-07-01 16:42:44 +10:00
util-strings.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
util-strings.h Run clang-format over the code 2025-07-01 16:42:44 +10:00
util-time.h Run clang-format over the code 2025-07-01 16:42:44 +10:00
util-udev.h Run clang-format over the code 2025-07-01 16:42:44 +10:00