libinput/src
Peter Hutterer 2bbf4a0117 evdev: use distance triggers to start scrolling
The previous code used delta/event as scroll trigger which roughly translates
to speed, but depends on the sampling rate of the device.

For slow two-finger motion, a user may move the height of the touchpad without
ever triggering scrolling. Change the _initial_ trigger to a cumulative
trigger, i.e. once the user moved past the threshold distance, scrolling
starts regardless of the speed.

Once scrolling is engaged, the original trigger of threshold/event is
required to engange the second scroll direction.

Note that except for really slow movements, it's very easy to engage both
scroll directions on a touchpad. This is intentional, libinput does not have
enough semantic knowledge to know if horizontal scrolling is needed. So we
provide some direction locking but not much, it's up to the
client/toolkit/widget to decide if both scroll directions should be handled.
Add a comment to clarify that in the public doc.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2014-11-11 10:00:56 +10:00
..
evdev-mt-touchpad-buttons.c touchpad: hook up left-handed configuration 2014-09-26 10:17:41 +10:00
evdev-mt-touchpad-tap.c touchpad: Make tap code follow state machine diagram part 3 2014-11-06 11:18:29 +01:00
evdev-mt-touchpad.c touchpad: explicitly init scroll settings 2014-11-11 10:00:56 +10:00
evdev-mt-touchpad.h touchpad: Don't send scroll events during 2 finger tap-n-drag 2014-11-06 11:04:17 +01:00
evdev.c evdev: use distance triggers to start scrolling 2014-11-11 10:00:56 +10:00
evdev.h evdev: use distance triggers to start scrolling 2014-11-11 10:00:56 +10:00
filter-private.h filter: add a configurable speed interface 2014-09-23 10:46:22 +10:00
filter.c filter: perform speed computations with doubles 2014-10-31 14:12:19 +10:00
filter.h filter: Fix typo 2014-10-31 14:11:28 +10:00
libinput-private.h core: Move libinput_event definition to libinput-private.h 2014-11-06 15:08:28 +10:00
libinput-util.c util: introduce ratelimit helpers 2014-11-07 08:30:50 +10:00
libinput-util.h util: introduce ratelimit helpers 2014-11-07 08:30:50 +10:00
libinput-version.h.in Port evdev code to be used as a shared library 2013-11-12 22:37:20 +01:00
libinput.c Change sendevents configuration to use bitmasks 2014-11-06 15:37:08 +10:00
libinput.h evdev: use distance triggers to start scrolling 2014-11-11 10:00:56 +10:00
libinput.pc.in Add -lrt to the libs 2014-07-03 09:59:43 +10:00
Makefile.am filter: add a filter-private.h header file 2014-09-23 10:46:22 +10:00
path.c evdev: don't resume a removed device 2014-09-18 11:31:23 +10:00
path.h path: modify backend to allow for more than one device 2014-02-10 11:23:35 +10:00
timer.c Add a helper function for clock_gettime 2014-09-18 11:30:15 +10:00
timer.h timer.h: Add #include libinput-util.h 2014-06-11 10:30:12 +10:00
udev-seat.c evdev: don't resume a removed device 2014-09-18 11:31:23 +10:00
udev-seat.h udev: Drop unused seat_name in struct udev_seat 2014-01-16 20:42:30 +01:00