mirror of
https://gitlab.freedesktop.org/libinput/libinput.git
synced 2026-02-05 13:20:28 +01:00
evdev: Update axis notifications to follow protocol
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
This commit is contained in:
parent
64545a2977
commit
62f9786646
1 changed files with 29 additions and 9 deletions
38
src/evdev.c
38
src/evdev.c
|
|
@ -30,6 +30,8 @@
|
|||
#include "compositor.h"
|
||||
#include "evdev.h"
|
||||
|
||||
#define DEFAULT_AXIS_STEP_DISTANCE wl_fixed_from_int(10)
|
||||
|
||||
void
|
||||
evdev_led_update(struct evdev_device *device, enum weston_led leds)
|
||||
{
|
||||
|
|
@ -161,17 +163,35 @@ evdev_process_relative(struct evdev_device *device,
|
|||
device->pending_events |= EVDEV_RELATIVE_MOTION;
|
||||
break;
|
||||
case REL_WHEEL:
|
||||
notify_axis(device->seat,
|
||||
time,
|
||||
WL_POINTER_AXIS_VERTICAL_SCROLL,
|
||||
wl_fixed_from_int(e->value));
|
||||
switch (e->value) {
|
||||
case -1:
|
||||
/* Scroll down */
|
||||
case 1:
|
||||
/* Scroll up */
|
||||
notify_axis(device->seat,
|
||||
time,
|
||||
WL_POINTER_AXIS_VERTICAL_SCROLL,
|
||||
-1 * e->value * DEFAULT_AXIS_STEP_DISTANCE);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case REL_HWHEEL:
|
||||
notify_axis(device->seat,
|
||||
time,
|
||||
WL_POINTER_AXIS_HORIZONTAL_SCROLL,
|
||||
wl_fixed_from_int(e->value));
|
||||
break;
|
||||
switch (e->value) {
|
||||
case -1:
|
||||
/* Scroll left */
|
||||
case 1:
|
||||
/* Scroll right */
|
||||
notify_axis(device->seat,
|
||||
time,
|
||||
WL_POINTER_AXIS_HORIZONTAL_SCROLL,
|
||||
e->value * DEFAULT_AXIS_STEP_DISTANCE);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue