From f77a791683b0a036f21fa25de761ca56a14695ba Mon Sep 17 00:00:00 2001 From: philmoz Date: Fri, 19 Dec 2025 22:58:01 +1100 Subject: [PATCH] fix(color): deleting last screen may not update the UI and corrupt model yaml file (#6887) --- radio/src/gui/colorlcd/mainview/screen_setup.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/radio/src/gui/colorlcd/mainview/screen_setup.cpp b/radio/src/gui/colorlcd/mainview/screen_setup.cpp index f1b4ff17e..1797cee22 100644 --- a/radio/src/gui/colorlcd/mainview/screen_setup.cpp +++ b/radio/src/gui/colorlcd/mainview/screen_setup.cpp @@ -213,9 +213,14 @@ void ScreenSetupPage::build(Window* window) // ... and reload LayoutFactory::loadCustomScreens(); - // Reset to first screen so user knows something has happened + // adjust index if last screen deleted + if (customScreens[customScreenIndex] == nullptr) customScreenIndex -= 1; + PageGroup* menu = (PageGroup*)window->getParent(); - menu->setCurrentTab(QuickMenu::pageIndex(QM_UI_SCREEN1)); + // Reset to setup page to ensure screen properly updates. + menu->setCurrentTab(QuickMenu::pageIndex(QM_UI_SETUP)); + // Reset to original (or adjusted screen) + menu->setCurrentTab(QuickMenu::pageIndex((QMPage)(QM_UI_SCREEN1 + customScreenIndex))); storageDirty(EE_MODEL); return 0;