diff --git a/radio/src/gui/128x64/view_main.cpp b/radio/src/gui/128x64/view_main.cpp index 13e4c6cbe..24b709fde 100644 --- a/radio/src/gui/128x64/view_main.cpp +++ b/radio/src/gui/128x64/view_main.cpp @@ -281,6 +281,7 @@ void onMainViewMenu(const char *result) POPUP_MENU_ADD_ITEM(STR_RESET_TIMER2); POPUP_MENU_ADD_ITEM(STR_RESET_TIMER3); POPUP_MENU_ADD_ITEM(STR_RESET_TELEMETRY); + POPUP_MENU_START(onMainViewMenu); } else if (result == STR_RESET_TELEMETRY) { telemetryReset(); diff --git a/radio/src/gui/212x64/view_main.cpp b/radio/src/gui/212x64/view_main.cpp index dd6900206..46b56716d 100644 --- a/radio/src/gui/212x64/view_main.cpp +++ b/radio/src/gui/212x64/view_main.cpp @@ -342,7 +342,7 @@ void menuMainViewChannelsMonitor(event_t event) return menuChannelsView(event); } -void onMainViewMenu(const char *result) +void onMainViewMenu(const char * result) { if (result == STR_RESET_TIMER1) { timerReset(0); @@ -364,6 +364,7 @@ void onMainViewMenu(const char *result) POPUP_MENU_ADD_ITEM(STR_RESET_TIMER2); POPUP_MENU_ADD_ITEM(STR_RESET_TIMER3); POPUP_MENU_ADD_ITEM(STR_RESET_TELEMETRY); + POPUP_MENU_START(onMainViewMenu); } else if (result == STR_RESET_TELEMETRY) { telemetryReset(); @@ -409,16 +410,6 @@ void displaySwitch(coord_t x, coord_t y, int width, unsigned int index) } } -bool isMenuAvailable(int index) -{ - if (index == 4) { - return modelHasNotes(); - } - else { - return true; - } -} - int getSwitchCount() { int count = 0; @@ -435,7 +426,6 @@ void menuMainView(event_t event) static bool secondPage = false; switch(event) { - case EVT_ENTRY: killEvents(KEY_EXIT); killEvents(KEY_UP); diff --git a/radio/src/gui/480x272/menus.h b/radio/src/gui/480x272/menus.h index ce3680604..afe790f3f 100644 --- a/radio/src/gui/480x272/menus.h +++ b/radio/src/gui/480x272/menus.h @@ -557,6 +557,9 @@ inline void POPUP_MENU_START(PopupMenuHandler handler) inline void CLEAR_POPUP() { warningText = nullptr; + warningInfoText = nullptr; + popupMenuHandler = nullptr; + popupMenuItemsCount = 0; } inline void POPUP_WAIT(const char * s) diff --git a/radio/src/gui/480x272/view_main.cpp b/radio/src/gui/480x272/view_main.cpp index d39f1b25d..4ee2e4a23 100644 --- a/radio/src/gui/480x272/view_main.cpp +++ b/radio/src/gui/480x272/view_main.cpp @@ -114,6 +114,7 @@ void onMainViewMenu(const char *result) POPUP_MENU_ADD_ITEM(STR_RESET_TIMER2); POPUP_MENU_ADD_ITEM(STR_RESET_TIMER3); POPUP_MENU_ADD_ITEM(STR_RESET_TELEMETRY); + POPUP_MENU_START(onMainViewMenu); } else if (result == STR_RESET_TELEMETRY) { telemetryReset(); diff --git a/radio/src/gui/common/stdlcd/popups.h b/radio/src/gui/common/stdlcd/popups.h index e83d8d05b..64baac2f6 100644 --- a/radio/src/gui/common/stdlcd/popups.h +++ b/radio/src/gui/common/stdlcd/popups.h @@ -79,6 +79,9 @@ enum inline void CLEAR_POPUP() { warningText = nullptr; + warningInfoText = nullptr; + popupMenuHandler = nullptr; + popupMenuItemsCount = 0; } inline void POPUP_WAIT(const char * s) diff --git a/radio/src/main.cpp b/radio/src/main.cpp index f2901e366..f3b33fdee 100644 --- a/radio/src/main.cpp +++ b/radio/src/main.cpp @@ -291,7 +291,7 @@ void guiMain(event_t evt) if (!refreshNeeded) { DEBUG_TIMER_START(debugTimerMenus); - while (1) { + while (true) { // normal GUI from menus const char * warn = warningText; uint8_t menu = popupMenuItemsCount; @@ -315,7 +315,7 @@ void guiMain(event_t evt) if (result) { TRACE("popupMenuHandler(%s)", result); auto handler = popupMenuHandler; - popupMenuHandler = nullptr; + CLEAR_POPUP(); handler(result); if (menuEvent == 0) { evt = EVT_REFRESH; @@ -391,7 +391,6 @@ void handleGui(event_t event) { } } menuHandlers[menuLevel](event); - // todo drawStatusLine(); here??? } else #endif @@ -456,7 +455,7 @@ void guiMain(event_t evt) if (result) { TRACE("popupMenuHandler(%s)", result); auto handler = popupMenuHandler; - popupMenuHandler = nullptr; + CLEAR_POPUP(); handler(result); } } diff --git a/radio/src/tasks.cpp b/radio/src/tasks.cpp index 40e2613d0..00e7d7b56 100644 --- a/radio/src/tasks.cpp +++ b/radio/src/tasks.cpp @@ -232,7 +232,7 @@ TASK_FUNCTION(menusTask) opentxInit(); #if defined(PWR_BUTTON_PRESS) - while (1) { + while (true) { uint32_t pwr_check = pwrCheck(); if (pwr_check == e_power_off) { break;