summaryrefslogtreecommitdiff
path: root/src/evdev.c
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2017-05-12 14:39:24 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2017-07-20 11:53:01 +1000
commit87b5682824b3137101f520b3b29fe396f80f57a8 (patch)
treef004f776e84073af0126b584e47ad1749d7957e6 /src/evdev.c
parent71dd7b51ae6b64dd51ed517757a5c21daa9bf5cb (diff)
filter: add a custom trackpoint accelerator
Switch to a pure factor with a max scaled after a function. The offset is just 0 now (will be removed eventually). Both are determined with a function based on a linear/exponential regression of a sample set of data pairs. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Diffstat (limited to 'src/evdev.c')
-rw-r--r--src/evdev.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/evdev.c b/src/evdev.c
index 24bfad07..4166091c 100644
--- a/src/evdev.c
+++ b/src/evdev.c
@@ -1990,7 +1990,7 @@ evdev_init_accel(struct evdev_device *device,
if (which == LIBINPUT_CONFIG_ACCEL_PROFILE_FLAT)
filter = create_pointer_accelerator_filter_flat(device->dpi);
else if (device->tags & EVDEV_TAG_TRACKPOINT)
- filter = create_pointer_accelerator_filter_trackpoint(device->dpi);
+ filter = create_pointer_accelerator_filter_trackpoint(device->trackpoint_range);
else if (device->dpi < DEFAULT_MOUSE_DPI)
filter = create_pointer_accelerator_filter_linear_low_dpi(device->dpi);
else
@@ -2213,6 +2213,10 @@ evdev_get_trackpoint_dpi(struct evdev_device *device)
const char *trackpoint_accel;
double accel = DEFAULT_TRACKPOINT_ACCEL;
+ /*
+ * parse the sensitivity property, and undo whatever it does.
+ */
+
trackpoint_accel = udev_device_get_property_value(
device->udev_device, "POINTINGSTICK_CONST_ACCEL");
if (trackpoint_accel) {
@@ -2227,6 +2231,8 @@ evdev_get_trackpoint_dpi(struct evdev_device *device)
evdev_log_info(device, "set to const accel %.2f\n", accel);
}
+ device->trackpoint_range = 20; /* FIXME */
+
return DEFAULT_MOUSE_DPI / accel;
}