From 40d9f33a08c6f5670b48ea0658fbeb16baf3e618 Mon Sep 17 00:00:00 2001 From: philmoz Date: Sun, 16 Aug 2026 14:30:35 +1000 Subject: [PATCH] fix(color): splash screen delay time is bypassed on H7 radios (#7618) Co-authored-by: philmoz --- radio/src/gui/colorlcd/startup_shutdown.cpp | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/radio/src/gui/colorlcd/startup_shutdown.cpp b/radio/src/gui/colorlcd/startup_shutdown.cpp index b9d49c982..77f8725dd 100644 --- a/radio/src/gui/colorlcd/startup_shutdown.cpp +++ b/radio/src/gui/colorlcd/startup_shutdown.cpp @@ -84,11 +84,13 @@ void drawSplash() } static tmr10ms_t splashStartTime = 0; +static bool splashRunning = false; void startSplash() { if (!UNEXPECTED_SHUTDOWN()) { splashStartTime = get_tmr10ms(); + splashRunning = true; drawSplash(); } } @@ -105,10 +107,21 @@ void cancelSplash() void waitSplash() { // Handle color splash screen - if (splashStartTime) { + if (splashRunning) { inactivityCheckInputs(); splashStartTime += SPLASH_TIMEOUT; +#if defined(PWR_BUTTON_DUAL) + // Wait for dual power buttons to be released + while (pwrPressed()) { + WDG_RESET(); + sleep_ms(10); + } + // Kill SYS and/or MDL events + killAllEvents(); + MainWindow::instance()->run(); +#endif + MainWindow::instance()->blockUntilClose(true, [=]() { if (splashStartTime < get_tmr10ms()) return true;