evdev: Update axis notifications to follow protocol

Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
dev
Jonas Ådahl 12 years ago committed by Kristian Høgsberg
parent f255690e54
commit b984e40c28
  1. 24
      src/evdev.c

@ -30,6 +30,8 @@
#include "compositor.h" #include "compositor.h"
#include "evdev.h" #include "evdev.h"
#define DEFAULT_AXIS_STEP_DISTANCE wl_fixed_from_int(10)
void void
evdev_led_update(struct evdev_device *device, enum weston_led leds) 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; device->pending_events |= EVDEV_RELATIVE_MOTION;
break; break;
case REL_WHEEL: case REL_WHEEL:
switch (e->value) {
case -1:
/* Scroll down */
case 1:
/* Scroll up */
notify_axis(device->seat, notify_axis(device->seat,
time, time,
WL_POINTER_AXIS_VERTICAL_SCROLL, WL_POINTER_AXIS_VERTICAL_SCROLL,
wl_fixed_from_int(e->value)); -1 * e->value * DEFAULT_AXIS_STEP_DISTANCE);
break;
default:
break;
}
break; break;
case REL_HWHEEL: case REL_HWHEEL:
switch (e->value) {
case -1:
/* Scroll left */
case 1:
/* Scroll right */
notify_axis(device->seat, notify_axis(device->seat,
time, time,
WL_POINTER_AXIS_HORIZONTAL_SCROLL, WL_POINTER_AXIS_HORIZONTAL_SCROLL,
wl_fixed_from_int(e->value)); e->value * DEFAULT_AXIS_STEP_DISTANCE);
break; break;
default:
break;
}
} }
} }

Loading…
Cancel
Save