You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
58 lines
2.0 KiB
58 lines
2.0 KiB
From 7a9318523c4dafdfb24f088af70fe84426368d3d Mon Sep 17 00:00:00 2001
|
|
From: Peter Hutterer <peter.hutterer@who-t.net>
|
|
Date: Tue, 13 Jan 2015 11:55:37 +1000
|
|
Subject: [PATCH weston] libinput-device: use the new merged scroll events
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
libinput now provides a single event for scroll events. Extract the axes from
|
|
that event and split them into the wl events.
|
|
|
|
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
Reviewed-by: Jonas Ådahl <jadahl@gmail.com>
|
|
---
|
|
src/libinput-device.c | 25 ++++++++++++++++++++-----
|
|
1 file changed, 20 insertions(+), 5 deletions(-)
|
|
|
|
diff --git a/src/libinput-device.c b/src/libinput-device.c
|
|
index 0e3f46d..6bb7a75 100644
|
|
--- a/src/libinput-device.c
|
|
+++ b/src/libinput-device.c
|
|
@@ -133,12 +133,27 @@ handle_pointer_axis(struct libinput_device *libinput_device,
|
|
struct evdev_device *device =
|
|
libinput_device_get_user_data(libinput_device);
|
|
double value;
|
|
+ enum libinput_pointer_axis axis;
|
|
|
|
- value = libinput_event_pointer_get_axis_value(pointer_event);
|
|
- notify_axis(device->seat,
|
|
- libinput_event_pointer_get_time(pointer_event),
|
|
- libinput_event_pointer_get_axis(pointer_event),
|
|
- wl_fixed_from_double(value));
|
|
+ axis = LIBINPUT_POINTER_AXIS_SCROLL_VERTICAL;
|
|
+ if (libinput_event_pointer_has_axis(pointer_event, axis)) {
|
|
+ value = libinput_event_pointer_get_axis_value(pointer_event,
|
|
+ axis);
|
|
+ notify_axis(device->seat,
|
|
+ libinput_event_pointer_get_time(pointer_event),
|
|
+ WL_POINTER_AXIS_VERTICAL_SCROLL,
|
|
+ wl_fixed_from_double(value));
|
|
+ }
|
|
+
|
|
+ axis = LIBINPUT_POINTER_AXIS_SCROLL_HORIZONTAL;
|
|
+ if (libinput_event_pointer_has_axis(pointer_event, axis)) {
|
|
+ value = libinput_event_pointer_get_axis_value(pointer_event,
|
|
+ axis);
|
|
+ notify_axis(device->seat,
|
|
+ libinput_event_pointer_get_time(pointer_event),
|
|
+ WL_POINTER_AXIS_HORIZONTAL_SCROLL,
|
|
+ wl_fixed_from_double(value));
|
|
+ }
|
|
}
|
|
|
|
static void
|
|
--
|
|
2.1.0
|
|
|