From 7a9318523c4dafdfb24f088af70fe84426368d3d Mon Sep 17 00:00:00 2001 From: Peter Hutterer 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 Reviewed-by: Jonas Ã…dahl --- 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