commit 6f2108471d7d029d2c11f53a1540bcfaa825c5b2
parent 4945a2eaceb0547ed2279b69204157aaf043f3a8
Author: Michael Forney <mforney@mforney.org>
Date: Mon, 16 Mar 2015 00:59:51 -0700
seat: Update for newer libinput API
Fixes #23.
Diffstat:
1 file changed, 18 insertions(+), 5 deletions(-)
diff --git a/libswc/seat.c b/libswc/seat.c
@@ -262,6 +262,19 @@ static uint32_t device_capabilities(struct libinput_device * device)
return capabilities;
}
+static void handle_libinput_axis_event(struct libinput_event_pointer * event,
+ enum libinput_pointer_axis axis)
+{
+ if (!libinput_event_pointer_has_axis(event, axis))
+ return;
+
+ double amount;
+
+ amount = libinput_event_pointer_get_axis_value(event, axis);
+ handle_axis(libinput_event_pointer_get_time(event), axis,
+ wl_fixed_from_double(amount));
+}
+
static int handle_libinput_data(int fd, uint32_t mask, void * data)
{
struct libinput_event * generic_event;
@@ -319,13 +332,13 @@ static int handle_libinput_data(int fd, uint32_t mask, void * data)
case LIBINPUT_EVENT_POINTER_AXIS:
{
struct libinput_event_pointer * event;
- wl_fixed_t amount;
event = libinput_event_get_pointer_event(generic_event);
- amount = wl_fixed_from_double
- (libinput_event_pointer_get_axis_value(event));
- handle_axis(libinput_event_pointer_get_time(event),
- libinput_event_pointer_get_axis(event), amount);
+ handle_libinput_axis_event
+ (event, LIBINPUT_POINTER_AXIS_SCROLL_VERTICAL);
+ handle_libinput_axis_event
+ (event, LIBINPUT_POINTER_AXIS_SCROLL_HORIZONTAL);
+
break;
}
default: