From 907aa43caf1fa09f08564c9109c97fdebcd54e31 Mon Sep 17 00:00:00 2001 From: jpirnay Date: Sat, 7 Mar 2026 18:51:55 +0100 Subject: [PATCH] No accidental confirmation --- src/activities/util/ConfirmationActivity.cpp | 14 ++++++++++++++ src/activities/util/ConfirmationActivity.h | 1 + 2 files changed, 15 insertions(+) diff --git a/src/activities/util/ConfirmationActivity.cpp b/src/activities/util/ConfirmationActivity.cpp index ee18ef25..093e096a 100644 --- a/src/activities/util/ConfirmationActivity.cpp +++ b/src/activities/util/ConfirmationActivity.cpp @@ -11,6 +11,7 @@ ConfirmationActivity::ConfirmationActivity(GfxRenderer& renderer, MappedInputMan void ConfirmationActivity::onEnter() { Activity::onEnter(); + inputArmed = false; lineHeight = renderer.getLineHeight(fontId); const int maxWidth = renderer.getScreenWidth() - (margin * 2); @@ -56,6 +57,19 @@ void ConfirmationActivity::render(RenderLock&& lock) { } void ConfirmationActivity::loop() { + if (!inputArmed) { + const bool anyFrontPressed = mappedInput.isPressed(MappedInputManager::Button::Back) || + mappedInput.isPressed(MappedInputManager::Button::Confirm) || + mappedInput.isPressed(MappedInputManager::Button::Left) || + mappedInput.isPressed(MappedInputManager::Button::Right); + + // Ignore inherited press/release events from the parent activity. + if (!anyFrontPressed && !mappedInput.wasAnyPressed() && !mappedInput.wasAnyReleased()) { + inputArmed = true; + } + return; + } + if (mappedInput.wasReleased(MappedInputManager::Button::Right)) { ActivityResult res; res.isCancelled = false; diff --git a/src/activities/util/ConfirmationActivity.h b/src/activities/util/ConfirmationActivity.h index 9f024d92..322855bf 100644 --- a/src/activities/util/ConfirmationActivity.h +++ b/src/activities/util/ConfirmationActivity.h @@ -19,6 +19,7 @@ class ConfirmationActivity : public Activity { std::string safeBody; int startY = 0; int lineHeight = 0; + bool inputArmed = false; public: ConfirmationActivity(GfxRenderer& renderer, MappedInputManager& mappedInput, const std::string& heading,