diff options
-rw-r--r-- | src/filter-touchpad.c | 13 | ||||
-rw-r--r-- | test/test-touchpad.c | 16 |
2 files changed, 19 insertions, 10 deletions
diff --git a/src/filter-touchpad.c b/src/filter-touchpad.c index 38a00e3a..0a9fdc2d 100644 --- a/src/filter-touchpad.c +++ b/src/filter-touchpad.c @@ -187,10 +187,19 @@ touchpad_constant_filter(struct motion_filter *filter, struct touchpad_accelerator *accel = (struct touchpad_accelerator *)filter; struct normalized_coords normalized; + /* We need to use the same baseline here as the accelerated code, + * otherwise our unaccelerated speed is different to the accelerated + * speed on the plateau. + * + * This is a hack, the baseline should be incorporated into the + * TP_MAGIC_SLOWDOWN so we only have one number here but meanwhile + * this will do. + */ + const double baseline = 0.9; normalized = normalize_for_dpi(unaccelerated, accel->dpi); - normalized.x = TP_MAGIC_SLOWDOWN * normalized.x; - normalized.y = TP_MAGIC_SLOWDOWN * normalized.y; + normalized.x = baseline * TP_MAGIC_SLOWDOWN * normalized.x; + normalized.y = baseline * TP_MAGIC_SLOWDOWN * normalized.y; return normalized; } diff --git a/test/test-touchpad.c b/test/test-touchpad.c index 38506768..73dd9f0d 100644 --- a/test/test-touchpad.c +++ b/test/test-touchpad.c @@ -150,13 +150,13 @@ START_TEST(touchpad_2fg_scroll) litest_drain_events(li); test_2fg_scroll(dev, 0.1, 40, false); - litest_assert_scroll(li, LIBINPUT_POINTER_AXIS_SCROLL_VERTICAL, 10); + litest_assert_scroll(li, LIBINPUT_POINTER_AXIS_SCROLL_VERTICAL, 9); test_2fg_scroll(dev, 0.1, -40, false); - litest_assert_scroll(li, LIBINPUT_POINTER_AXIS_SCROLL_VERTICAL, -10); + litest_assert_scroll(li, LIBINPUT_POINTER_AXIS_SCROLL_VERTICAL, -9); test_2fg_scroll(dev, 40, 0.1, false); - litest_assert_scroll(li, LIBINPUT_POINTER_AXIS_SCROLL_HORIZONTAL, 10); + litest_assert_scroll(li, LIBINPUT_POINTER_AXIS_SCROLL_HORIZONTAL, 9); test_2fg_scroll(dev, -40, 0.1, false); - litest_assert_scroll(li, LIBINPUT_POINTER_AXIS_SCROLL_HORIZONTAL, -10); + litest_assert_scroll(li, LIBINPUT_POINTER_AXIS_SCROLL_HORIZONTAL, -9); /* 2fg scroll smaller than the threshold should not generate events */ test_2fg_scroll(dev, 0.1, 0.1, true); @@ -602,13 +602,13 @@ START_TEST(touchpad_scroll_natural_2fg) libinput_device_config_scroll_set_natural_scroll_enabled(dev->libinput_device, 1); test_2fg_scroll(dev, 0.1, 40, false); - litest_assert_scroll(li, LIBINPUT_POINTER_AXIS_SCROLL_VERTICAL, -10); + litest_assert_scroll(li, LIBINPUT_POINTER_AXIS_SCROLL_VERTICAL, -9); test_2fg_scroll(dev, 0.1, -40, false); - litest_assert_scroll(li, LIBINPUT_POINTER_AXIS_SCROLL_VERTICAL, 10); + litest_assert_scroll(li, LIBINPUT_POINTER_AXIS_SCROLL_VERTICAL, 9); test_2fg_scroll(dev, 40, 0.1, false); - litest_assert_scroll(li, LIBINPUT_POINTER_AXIS_SCROLL_HORIZONTAL, -10); + litest_assert_scroll(li, LIBINPUT_POINTER_AXIS_SCROLL_HORIZONTAL, -9); test_2fg_scroll(dev, -40, 0.1, false); - litest_assert_scroll(li, LIBINPUT_POINTER_AXIS_SCROLL_HORIZONTAL, 10); + litest_assert_scroll(li, LIBINPUT_POINTER_AXIS_SCROLL_HORIZONTAL, 9); } END_TEST |