Signed-off-by: Jonas Ådahl <jad...@gmail.com>
---
 src/compositor.h      | 3 +++
 src/libinput-device.c | 9 ++++++++-
 2 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/src/compositor.h b/src/compositor.h
index 79b232e..331b758 100644
--- a/src/compositor.h
+++ b/src/compositor.h
@@ -249,6 +249,7 @@ struct weston_output {
 enum weston_pointer_motion_mask {
        WESTON_POINTER_MOTION_ABS = 1 << 0,
        WESTON_POINTER_MOTION_REL = 1 << 1,
+       WESTON_POINTER_MOTION_REL_NOACCEL = 1 << 2,
 };
 
 struct weston_pointer_motion_event {
@@ -257,6 +258,8 @@ struct weston_pointer_motion_event {
        double y;
        double dx;
        double dy;
+       double dx_unaccel;
+       double dy_unaccel;
 };
 
 struct weston_pointer_grab;
diff --git a/src/libinput-device.c b/src/libinput-device.c
index 28cc565..45bc863 100644
--- a/src/libinput-device.c
+++ b/src/libinput-device.c
@@ -85,11 +85,18 @@ handle_pointer_motion(struct libinput_device 
*libinput_device,
        struct evdev_device *device =
                libinput_device_get_user_data(libinput_device);
        struct weston_pointer_motion_event event = { 0 };
+       double dx_unaccel, dy_unaccel;
+
+       dx_unaccel = libinput_event_pointer_get_dx_unaccelerated(pointer_event);
+       dy_unaccel = libinput_event_pointer_get_dy_unaccelerated(pointer_event);
 
        event = (struct weston_pointer_motion_event) {
-               .mask = WESTON_POINTER_MOTION_REL,
+               .mask = WESTON_POINTER_MOTION_REL |
+                       WESTON_POINTER_MOTION_REL_NOACCEL,
                .dx = libinput_event_pointer_get_dx(pointer_event),
                .dy = libinput_event_pointer_get_dy(pointer_event),
+               .dx_unaccel = dx_unaccel,
+               .dy_unaccel = dy_unaccel,
        };
 
        notify_motion(device->seat,
-- 
2.1.4

_______________________________________________
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to