xorg-x11-drv-libinput/0002-Get-scroll-source-in-the-event-handler.patch
2021-09-03 09:33:54 +10:00

92 lines
3.0 KiB
Diff

From ca9042c7f08f8f0dc214b9cc19f3243728ec8c4a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jos=C3=A9=20Exp=C3=B3sito?= <jose.exposito89@gmail.com>
Date: Wed, 4 Aug 2021 17:51:26 +0200
Subject: [PATCH xf86-input-libinput 2/3] Get scroll source in the event
handler
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Where libinput supports high-resolution scroll events, the scroll source
is encoded in the event type.
Get the scroll source in xf86libinput_handle_event to facilitate the
migration.
Refactor, no functional changes.
Signed-off-by: José Expósito <jose.exposito89@gmail.com>
---
src/xf86libinput.c | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/src/xf86libinput.c b/src/xf86libinput.c
index adbc724..a8b7013 100644
--- a/src/xf86libinput.c
+++ b/src/xf86libinput.c
@@ -1631,15 +1631,14 @@ static inline bool
calculate_axis_value(struct xf86libinput *driver_data,
enum libinput_pointer_axis axis,
struct libinput_event_pointer *event,
+ enum libinput_pointer_axis_source source,
double *value_out)
{
- enum libinput_pointer_axis_source source;
double value;
if (!libinput_event_pointer_has_axis(event, axis))
return false;
- source = libinput_event_pointer_get_axis_source(event);
if (source == LIBINPUT_POINTER_AXIS_SOURCE_WHEEL) {
value = get_wheel_scroll_value(driver_data, event, axis);
} else {
@@ -1665,7 +1664,9 @@ calculate_axis_value(struct xf86libinput *driver_data,
}
static void
-xf86libinput_handle_axis(InputInfoPtr pInfo, struct libinput_event_pointer *event)
+xf86libinput_handle_axis(InputInfoPtr pInfo,
+ struct libinput_event_pointer *event,
+ enum libinput_pointer_axis_source source)
{
DeviceIntPtr dev = pInfo->dev;
struct xf86libinput *driver_data = pInfo->private;
@@ -1678,7 +1679,6 @@ xf86libinput_handle_axis(InputInfoPtr pInfo, struct libinput_event_pointer *even
valuator_mask_zero(mask);
- source = libinput_event_pointer_get_axis_source(event);
switch(source) {
case LIBINPUT_POINTER_AXIS_SOURCE_FINGER:
case LIBINPUT_POINTER_AXIS_SOURCE_WHEEL:
@@ -1691,6 +1691,7 @@ xf86libinput_handle_axis(InputInfoPtr pInfo, struct libinput_event_pointer *even
if (calculate_axis_value(driver_data,
LIBINPUT_POINTER_AXIS_SCROLL_VERTICAL,
event,
+ source,
&value))
valuator_mask_set_double(mask, 3, value);
@@ -1700,6 +1701,7 @@ xf86libinput_handle_axis(InputInfoPtr pInfo, struct libinput_event_pointer *even
if (calculate_axis_value(driver_data,
LIBINPUT_POINTER_AXIS_SCROLL_HORIZONTAL,
event,
+ source,
&value))
valuator_mask_set_double(mask, 2, value);
@@ -2381,7 +2383,8 @@ xf86libinput_handle_event(struct libinput_event *event)
break;
case LIBINPUT_EVENT_POINTER_AXIS:
xf86libinput_handle_axis(pInfo,
- libinput_event_get_pointer_event(event));
+ libinput_event_get_pointer_event(event),
+ libinput_event_pointer_get_axis_source(event));
break;
case LIBINPUT_EVENT_TOUCH_FRAME:
break;
--
2.31.1