diff --git a/src/evdev-mt-touchpad.c b/src/evdev-mt-touchpad.c index 89cebd55..040939b6 100644 --- a/src/evdev-mt-touchpad.c +++ b/src/evdev-mt-touchpad.c @@ -479,6 +479,10 @@ tp_post_twofinger_scroll(struct tp_dispatch *tp, uint64_t time) return; } + /* Stop spurious MOTION events at the end of scrolling */ + tp_for_each_touch(tp, t) + t->is_pointer = false; + if (dy != 0.0 && (tp->scroll.direction & (1 << LIBINPUT_POINTER_AXIS_VERTICAL_SCROLL))) { pointer_notify_axis(&tp->device->base, diff --git a/test/touchpad.c b/test/touchpad.c index 959978e5..dc2e25ba 100644 --- a/test/touchpad.c +++ b/test/touchpad.c @@ -74,8 +74,8 @@ START_TEST(touchpad_2fg_no_motion) litest_touch_down(dev, 1, 70, 20); litest_touch_move_to(dev, 0, 20, 20, 80, 80, 5); litest_touch_move_to(dev, 1, 70, 20, 80, 50, 5); - litest_touch_up(dev, 0); litest_touch_up(dev, 1); + litest_touch_up(dev, 0); libinput_dispatch(li);