Add parsing for a LIBINPUT_ATTR_TRACKPOINT_RANGE property to enable
hardware-dependent ranges. These take precedence over the sensitivity parsing.

Signed-off-by: Peter Hutterer <[email protected]>
---
 src/evdev.c | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/src/evdev.c b/src/evdev.c
index 991b12db..a1da9144 100644
--- a/src/evdev.c
+++ b/src/evdev.c
@@ -2217,6 +2217,20 @@ evdev_get_trackpoint_range(struct evdev_device *device)
                return DEFAULT_TRACKPOINT_RANGE;
 
        prop = udev_device_get_property_value(device->udev_device,
+                                             "LIBINPUT_ATTR_TRACKPOINT_RANGE");
+       if (prop) {
+               if (!safe_atoi(prop, &range) ||
+                   (range < 0.0 || range > 100)) {
+                       evdev_log_error(device,
+                                       "trackpoint range property is present 
but invalid, "
+                                       "using %d instead\n",
+                                       DEFAULT_TRACKPOINT_RANGE);
+                       range = DEFAULT_TRACKPOINT_RANGE;
+               }
+               goto out;
+       }
+
+       prop = udev_device_get_property_value(device->udev_device,
                                              "POINTINGSTICK_SENSITIVITY");
        if (prop) {
                int sensitivity;
@@ -2233,6 +2247,8 @@ evdev_get_trackpoint_range(struct evdev_device *device)
                        sensitivity/DEFAULT_TRACKPOINT_SENSITIVITY;
        }
 
+out:
+       evdev_log_info(device, "trackpoint device set to range %d\n", range);
        return range;
 }
 
-- 
2.13.0

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

Reply via email to