Signed-off-by: Jonas Ådahl <[email protected]>
---

Follow up from 
http://lists.freedesktop.org/archives/wayland-devel/2012-September/005596.html

 src/evdev.c |   38 +++++++++++++++++++++++++++++---------
 1 file changed, 29 insertions(+), 9 deletions(-)

diff --git a/src/evdev.c b/src/evdev.c
index 8848736..648a6de 100644
--- a/src/evdev.c
+++ b/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_VERTICAL_SCROLL,
+                                   e->value * DEFAULT_AXIS_STEP_DISTANCE);
+                       break;
+               default:
+                       break;
+
+               }
        }
 }
 
-- 
1.7.9.5

_______________________________________________
wayland-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to