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 <[email protected]> --- Patch for the as yet unreleased libinput 0.8. Do not merge yet, it'll break the build. 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 8a48905..e68b54d 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 _______________________________________________ wayland-devel mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/wayland-devel
