diff options
author | Kim Lindberger <kim.lindberger@gmail.com> | 2018-08-17 15:12:58 +0200 |
---|---|---|
committer | Kim Lindberger <kim.lindberger@gmail.com> | 2018-08-22 12:12:55 +0200 |
commit | 99334e11bfd426687edf99a913ae0502a428e107 (patch) | |
tree | dd909525d3248b5847d31034a18a13a42c4705f3 /tools/ptraccel-debug.c | |
parent | f82eeae2997175b4c064eb09c42a34a8b196ada0 (diff) | |
download | libinput-99334e11bfd426687edf99a913ae0502a428e107.tar.gz |
Add quirk to control velocity averaging, disable it by default
libinput applies averaging to the velocity of most pointer devices. Averaging
the velocity makes the motion look smooth and may be of benefit to bad input
devices. For good devices, however, it comes at the unfortunate price of
decreased accuaracy.
This change turns velocity averaging off by default (sets ntrackers to 2 instead
of 16) and allows for it to be turned back on via a quirk, for bad devices which
require it.
Diffstat (limited to 'tools/ptraccel-debug.c')
-rw-r--r-- | tools/ptraccel-debug.c | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/tools/ptraccel-debug.c b/tools/ptraccel-debug.c index 9a84688a..5e403b66 100644 --- a/tools/ptraccel-debug.c +++ b/tools/ptraccel-debug.c @@ -222,6 +222,7 @@ main(int argc, char **argv) double custom_deltas[1024]; double speed = 0.0; int dpi = 1000; + bool use_averaging = false; const char *filter_type = "linear"; accel_profile_func_t profile = NULL; double tp_multiplier = 1.0; @@ -314,19 +315,25 @@ main(int argc, char **argv) } if (streq(filter_type, "linear")) { - filter = create_pointer_accelerator_filter_linear(dpi); + filter = create_pointer_accelerator_filter_linear(dpi, + use_averaging); profile = pointer_accel_profile_linear; } else if (streq(filter_type, "low-dpi")) { - filter = create_pointer_accelerator_filter_linear_low_dpi(dpi); + filter = create_pointer_accelerator_filter_linear_low_dpi(dpi, + use_averaging); profile = pointer_accel_profile_linear_low_dpi; } else if (streq(filter_type, "touchpad")) { - filter = create_pointer_accelerator_filter_touchpad(dpi, 0, 0); + filter = create_pointer_accelerator_filter_touchpad(dpi, + 0, 0, + use_averaging); profile = touchpad_accel_profile_linear; } else if (streq(filter_type, "x230")) { - filter = create_pointer_accelerator_filter_lenovo_x230(dpi); + filter = create_pointer_accelerator_filter_lenovo_x230(dpi, + use_averaging); profile = touchpad_lenovo_x230_accel_profile; } else if (streq(filter_type, "trackpoint")) { - filter = create_pointer_accelerator_filter_trackpoint(tp_multiplier); + filter = create_pointer_accelerator_filter_trackpoint(tp_multiplier, + use_averaging); profile = trackpoint_accel_profile; } else { fprintf(stderr, "Invalid filter type %s\n", filter_type); |