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;