evdev: log a bug for missing pointer accel on relative events
authorPeter Hutterer <peter.hutterer@who-t.net>
Tue, 27 Oct 2015 23:20:33 +0000 (09:20 +1000)
committerPeter Hutterer <peter.hutterer@who-t.net>
Wed, 28 Oct 2015 00:04:19 +0000 (10:04 +1000)
And use the unaccelerated motion events. Better than crashing, and better than
a non-moving mouse.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
src/evdev.c

index 45c1b1b2481dd6147724308df792caaeb04a8cc0..4c947d690bccc963071c8355cb89cbf6c21d88e1 100644 (file)
@@ -299,11 +299,18 @@ evdev_flush_pending_event(struct evdev_device *device, uint64_t time)
                if (evdev_post_trackpoint_scroll(device, unaccel, time))
                        break;
 
-               /* Apply pointer acceleration. */
-               accel = filter_dispatch(device->pointer.filter,
-                                       &unaccel,
-                                       device,
-                                       time);
+               if (device->pointer.filter) {
+                       /* Apply pointer acceleration. */
+                       accel = filter_dispatch(device->pointer.filter,
+                                               &unaccel,
+                                               device,
+                                               time);
+               } else {
+                       log_bug_libinput(libinput,
+                                        "%s: accel filter missing\n",
+                                        udev_device_get_devnode(device->udev_device));
+                       accel = unaccel;
+               }
 
                if (normalized_is_zero(accel) && normalized_is_zero(unaccel))
                        break;