This event marks the end of 1..N simultaneous axis changes. Will be useful to have users compress vscroll/hscroll processing in a single point, and will prove even more useful on devices with a higher number of axes, like tablets.
Signed-off-by: Carlos Garnacho <carl...@gnome.org> --- src/libinput-private.h | 4 ++++ src/libinput.c | 23 +++++++++++++++++++++++ src/libinput.h | 5 +++++ 3 files changed, 32 insertions(+) diff --git a/src/libinput-private.h b/src/libinput-private.h index 21627b0..4eac89d 100644 --- a/src/libinput-private.h +++ b/src/libinput-private.h @@ -155,6 +155,10 @@ pointer_notify_axis(struct libinput_device *device, li_fixed_t value); void +pointer_notify_axis_frame(struct libinput_device *device, + uint32_t time); + +void touch_notify_touch_down(struct libinput_device *device, uint32_t time, int32_t slot, diff --git a/src/libinput.c b/src/libinput.c index 1e31be3..4ecd068 100644 --- a/src/libinput.c +++ b/src/libinput.c @@ -175,6 +175,7 @@ libinput_event_get_pointer_event(struct libinput_event *event) case LIBINPUT_EVENT_POINTER_MOTION_ABSOLUTE: case LIBINPUT_EVENT_POINTER_BUTTON: case LIBINPUT_EVENT_POINTER_AXIS: + case LIBINPUT_EVENT_POINTER_AXIS_FRAME: return (struct libinput_event_pointer *) event; case LIBINPUT_EVENT_TOUCH_DOWN: case LIBINPUT_EVENT_TOUCH_UP: @@ -202,6 +203,7 @@ libinput_event_get_keyboard_event(struct libinput_event *event) case LIBINPUT_EVENT_POINTER_MOTION_ABSOLUTE: case LIBINPUT_EVENT_POINTER_BUTTON: case LIBINPUT_EVENT_POINTER_AXIS: + case LIBINPUT_EVENT_POINTER_AXIS_FRAME: case LIBINPUT_EVENT_TOUCH_DOWN: case LIBINPUT_EVENT_TOUCH_UP: case LIBINPUT_EVENT_TOUCH_MOTION: @@ -226,6 +228,7 @@ libinput_event_get_touch_event(struct libinput_event *event) case LIBINPUT_EVENT_POINTER_MOTION_ABSOLUTE: case LIBINPUT_EVENT_POINTER_BUTTON: case LIBINPUT_EVENT_POINTER_AXIS: + case LIBINPUT_EVENT_POINTER_AXIS_FRAME: break; case LIBINPUT_EVENT_TOUCH_DOWN: case LIBINPUT_EVENT_TOUCH_UP: @@ -252,6 +255,7 @@ libinput_event_get_device_notify_event(struct libinput_event *event) case LIBINPUT_EVENT_POINTER_MOTION_ABSOLUTE: case LIBINPUT_EVENT_POINTER_BUTTON: case LIBINPUT_EVENT_POINTER_AXIS: + case LIBINPUT_EVENT_POINTER_AXIS_FRAME: case LIBINPUT_EVENT_TOUCH_DOWN: case LIBINPUT_EVENT_TOUCH_UP: case LIBINPUT_EVENT_TOUCH_MOTION: @@ -844,6 +848,25 @@ pointer_notify_axis(struct libinput_device *device, } void +pointer_notify_axis_frame(struct libinput_device *device, + uint32_t time) +{ + struct libinput_event_pointer *axis_frame_event; + + axis_frame_event = zalloc(sizeof *axis_frame_event); + if (!axis_frame_event) + return; + + *axis_frame_event = (struct libinput_event_pointer) { + .time = time, + }; + + post_device_event(device, + LIBINPUT_EVENT_POINTER_AXIS_FRAME, + &axis_frame_event->base); +} + +void touch_notify_touch_down(struct libinput_device *device, uint32_t time, int32_t slot, diff --git a/src/libinput.h b/src/libinput.h index 810a66c..5b3d79e 100644 --- a/src/libinput.h +++ b/src/libinput.h @@ -146,6 +146,11 @@ enum libinput_event_type { LIBINPUT_EVENT_POINTER_MOTION_ABSOLUTE, LIBINPUT_EVENT_POINTER_BUTTON, LIBINPUT_EVENT_POINTER_AXIS, + /** + * Signals the end of a set of axis changes on the pointer. This + * event has no coordinate information attached. + */ + LIBINPUT_EVENT_POINTER_AXIS_FRAME, LIBINPUT_EVENT_TOUCH_DOWN = 500, LIBINPUT_EVENT_TOUCH_UP, -- 1.9.0 _______________________________________________ wayland-devel mailing list wayland-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/wayland-devel