summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/filter-touchpad.c13
-rw-r--r--test/test-touchpad.c16
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