diff --git a/src/evdev.c b/src/evdev.c index f9f26a64..f9e23a9f 100644 --- a/src/evdev.c +++ b/src/evdev.c @@ -2216,6 +2216,20 @@ evdev_get_trackpoint_range(struct evdev_device *device) if (!(device->tags & EVDEV_TAG_TRACKPOINT)) 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) { @@ -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; }