Let the page buttons keep up with the finger: Next, Next, Next reaches page 4 (0.2.72)

The Previous and Next bars ran their tap through the tile guard, whose 600 ms
same-tile window (so one contact never fires a tile twice) dropped the second
and third tap of a quick Next, Next, Next. They now use accept_repeat, the
-/+ keys' rule since 0.2.25: every clean tap counts, only a contact within
150 ms of the last accepted tap on the same button is a bounce. The page fill
already dropped a fill under way when the next page was asked for. Firmware
0.2.61; test_cyd_ui.cpp covers the page buttons; host harness and check builds
in docs/TEST_RESULTS_0272.md.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
Max Gramser
2026-09-18 07:29:23 +02:00
parent 2cb347964d
commit 9f5694b9eb
11 changed files with 124 additions and 16 deletions
+3 -3
View File
@@ -17,7 +17,7 @@
############################################################
substitutions:
SCREEN_FIRMWARE_VERSION: "0.2.60"
SCREEN_FIRMWARE_VERSION: "0.2.61"
# A tap survives a finger that drifts up to this far (320 px over 58 mm: 1 cm); further is a swipe.
TOUCH_MOVE_LIMIT_PX: "56"
# Shortest contact that counts as a tap; a resistive panel bounces, a capacitive one does not.
@@ -2351,7 +2351,7 @@ lvgl:
on_short_click:
- if:
condition:
lambda: 'return cyd::touch_guard.accept(millis(), 11);'
lambda: 'return cyd::touch_guard.accept_repeat(millis(), 11);'
then:
- lambda: 'id(tile_page) = std::max(0, id(tile_page) - 1);'
- script.execute: show_tile_page
@@ -2392,7 +2392,7 @@ lvgl:
on_short_click:
- if:
condition:
lambda: 'return cyd::touch_guard.accept(millis(), 12);'
lambda: 'return cyd::touch_guard.accept_repeat(millis(), 12);'
then:
- lambda: 'id(tile_page) += 1;'
- script.execute: show_tile_page