[PATCH libinput 02/24] evdev: use an axis_frame event to mark the end of axis changes
Peter Hutterer
peter.hutterer at who-t.net
Sun Apr 27 22:01:47 PDT 2014
On Mon, Apr 21, 2014 at 07:11:11PM +0200, Carlos Garnacho wrote:
> 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 <carlosg at 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);
this actually makes it impossible to get both in the same AXIS_FRAME
sequence. Is this really intended?
Cheers,
Peter
> }
>
> static inline void
> --
> 1.9.0
More information about the wayland-devel
mailing list