libinput/0004-evdev-move-posting-a-trackpoint-scroll-event-into-a-.patch
Peter Hutterer 7eb3526873 Steepen deceleration curve to get better 1:1 movement on slow speeds
(#1231304)
- Provide custom accel method for <1000dpi mice (#1227039)
2015-06-29 11:19:32 +10:00

60 lines
1.8 KiB
Diff

From f9503763adbaef8fc7220e2da782917cea8803ee Mon Sep 17 00:00:00 2001
From: Peter Hutterer <peter.hutterer@who-t.net>
Date: Fri, 26 Jun 2015 09:27:20 +1000
Subject: [PATCH libinput 4/9] evdev: move posting a trackpoint scroll event
into a helper
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
---
src/evdev.c | 27 +++++++++++++++++++--------
1 file changed, 19 insertions(+), 8 deletions(-)
diff --git a/src/evdev.c b/src/evdev.c
index 67843db..b2595d4 100644
--- a/src/evdev.c
+++ b/src/evdev.c
@@ -253,6 +253,23 @@ normalize_delta(struct evdev_device *device,
normalized->y = delta->y * DEFAULT_MOUSE_DPI / (double)device->dpi;
}
+static inline bool
+evdev_post_trackpoint_scroll(struct evdev_device *device,
+ struct normalized_coords unaccel,
+ uint64_t time)
+{
+ if (device->scroll.method != LIBINPUT_CONFIG_SCROLL_ON_BUTTON_DOWN ||
+ !hw_is_key_down(device, device->scroll.button))
+ return false;
+
+ if (device->scroll.button_scroll_active)
+ evdev_post_scroll(device, time,
+ LIBINPUT_POINTER_AXIS_SOURCE_CONTINUOUS,
+ &unaccel);
+
+ return true;
+}
+
static void
evdev_flush_pending_event(struct evdev_device *device, uint64_t time)
{
@@ -275,14 +292,8 @@ evdev_flush_pending_event(struct evdev_device *device, uint64_t time)
device->rel.y = 0;
/* Use unaccelerated deltas for pointing stick scroll */
- if (device->scroll.method == LIBINPUT_CONFIG_SCROLL_ON_BUTTON_DOWN &&
- hw_is_key_down(device, device->scroll.button)) {
- if (device->scroll.button_scroll_active)
- evdev_post_scroll(device, time,
- LIBINPUT_POINTER_AXIS_SOURCE_CONTINUOUS,
- &unaccel);
- break;
- }
+ if (evdev_post_trackpoint_scroll(device, unaccel, time))
+ break;
/* Apply pointer acceleration. */
accel = filter_dispatch(device->pointer.filter,
--
2.4.3