diff --git a/src/evdev-mt-touchpad-edge-scroll.c b/src/evdev-mt-touchpad-edge-scroll.c index fcc05121..8222bba4 100644 --- a/src/evdev-mt-touchpad-edge-scroll.c +++ b/src/evdev-mt-touchpad-edge-scroll.c @@ -318,6 +318,15 @@ tp_edge_scroll_handle_state(struct tp_dispatch *tp, uint64_t time) { struct tp_touch *t; + if (tp->scroll.method != LIBINPUT_CONFIG_SCROLL_EDGE) { + tp_for_each_touch(tp, t) { + if (t->state == TOUCH_BEGIN) + t->scroll.edge_state = + EDGE_SCROLL_TOUCH_STATE_AREA; + } + return; + } + tp_for_each_touch(tp, t) { if (!t->dirty) continue; @@ -350,9 +359,6 @@ tp_edge_scroll_post_events(struct tp_dispatch *tp, uint64_t time) const struct normalized_coords zero = { 0.0, 0.0 }; const struct discrete_coords zero_discrete = { 0.0, 0.0 }; - if (tp->scroll.method != LIBINPUT_CONFIG_SCROLL_EDGE) - return 0; - tp_for_each_touch(tp, t) { if (!t->dirty) continue;