From 9a8aeee5aed5e2593a3ba2bdcc6e2eb2c47e03f7 Mon Sep 17 00:00:00 2001 From: Uri Tauber Date: Mon, 26 Jan 2026 15:28:32 +0200 Subject: [PATCH] Fix input leakage: use wasReleased for action buttons in Menu and Footnotes --- src/activities/reader/EpubReaderFootnotesActivity.cpp | 4 ++-- src/activities/reader/EpubReaderMenuActivity.cpp | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/activities/reader/EpubReaderFootnotesActivity.cpp b/src/activities/reader/EpubReaderFootnotesActivity.cpp index 1186b7c0..e08fc633 100644 --- a/src/activities/reader/EpubReaderFootnotesActivity.cpp +++ b/src/activities/reader/EpubReaderFootnotesActivity.cpp @@ -16,12 +16,12 @@ void EpubReaderFootnotesActivity::onExit() { } void EpubReaderFootnotesActivity::loop() { - if (mappedInput.wasPressed(MappedInputManager::Button::Back)) { + if (mappedInput.wasReleased(MappedInputManager::Button::Back)) { onGoBack(); return; } - if (mappedInput.wasPressed(MappedInputManager::Button::Confirm)) { + if (mappedInput.wasReleased(MappedInputManager::Button::Confirm)) { const FootnoteEntry* entry = footnotes.getEntry(selectedIndex); if (entry) { Serial.printf("[%lu] [FNS] Selected footnote: %s -> %s\n", millis(), entry->number, entry->href); diff --git a/src/activities/reader/EpubReaderMenuActivity.cpp b/src/activities/reader/EpubReaderMenuActivity.cpp index 8ec88b26..3bfc8289 100644 --- a/src/activities/reader/EpubReaderMenuActivity.cpp +++ b/src/activities/reader/EpubReaderMenuActivity.cpp @@ -44,9 +44,9 @@ void EpubReaderMenuActivity::loop() { const bool nextReleased = mappedInput.wasReleased(MappedInputManager::Button::Down) || mappedInput.wasReleased(MappedInputManager::Button::Right); - if (mappedInput.wasPressed(MappedInputManager::Button::Confirm)) { + if (mappedInput.wasReleased(MappedInputManager::Button::Confirm)) { onSelectOption(static_cast(selectorIndex)); - } else if (mappedInput.wasPressed(MappedInputManager::Button::Back)) { + } else if (mappedInput.wasReleased(MappedInputManager::Button::Back)) { onGoBack(); } else if (prevReleased) { selectorIndex = (selectorIndex + MENU_ITEMS_COUNT - 1) % MENU_ITEMS_COUNT;