It will be unlikely in this case to get both REL_WHEEL and REL_HWHEEL on a single EV_SYN, but for completeness.
Signed-off-by: Carlos Garnacho <carl...@gnome.org> --- src/evdev.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/evdev.c b/src/evdev.c index 901b310..94fe67b 100644 --- a/src/evdev.c +++ b/src/evdev.c @@ -335,6 +335,7 @@ evdev_process_relative(struct evdev_device *device, struct input_event *e, uint32_t time) { struct libinput_device *base = &device->base; + int need_frame = 0; switch (e->code) { case REL_X: @@ -356,6 +357,7 @@ evdev_process_relative(struct evdev_device *device, time, LIBINPUT_POINTER_AXIS_VERTICAL_SCROLL, -1 * e->value * DEFAULT_AXIS_STEP_DISTANCE); + need_frame = 1; break; case REL_HWHEEL: evdev_flush_pending_event(device, time); @@ -369,12 +371,16 @@ evdev_process_relative(struct evdev_device *device, time, LIBINPUT_POINTER_AXIS_HORIZONTAL_SCROLL, e->value * DEFAULT_AXIS_STEP_DISTANCE); + need_frame = 1; break; default: break; } } + + if (need_frame) + pointer_notify_axis_frame(base, time); } static inline void -- 1.9.0 _______________________________________________ wayland-devel mailing list wayland-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/wayland-devel