diff options
author | Peter Hutterer <peter.hutterer@who-t.net> | 2017-05-12 14:39:24 +1000 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2017-07-20 11:53:01 +1000 |
commit | 87b5682824b3137101f520b3b29fe396f80f57a8 (patch) | |
tree | f004f776e84073af0126b584e47ad1749d7957e6 /src/evdev.c | |
parent | 71dd7b51ae6b64dd51ed517757a5c21daa9bf5cb (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.c | 8 |
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; } |