diff --git a/radio/src/gui/common/stdlcd/radio_tools.cpp b/radio/src/gui/common/stdlcd/radio_tools.cpp index b2d13cba5..478c052b3 100644 --- a/radio/src/gui/common/stdlcd/radio_tools.cpp +++ b/radio/src/gui/common/stdlcd/radio_tools.cpp @@ -25,15 +25,20 @@ extern uint8_t g_moduleIdx; bool addRadioTool(uint8_t index, const char * label) { - int8_t sub = menuVerticalPosition - HEADER_LINE; - LcdFlags attr = (sub == index ? INVERS : 0); - coord_t y = MENU_HEADER_HEIGHT + 1 + index * FH; - lcdDrawNumber(3, y, index + 1, LEADING0|LEFT, 2); - lcdDrawText(3*FW, y, label, (sub == index ? INVERS : 0)); - if (attr && s_editMode > 0) { - s_editMode = 0; - killAllEvents(); - return true; + if (index >= menuVerticalOffset) { + uint8_t lineIndex = index - menuVerticalOffset; + if (lineIndex < NUM_BODY_LINES) { + int8_t sub = menuVerticalPosition - HEADER_LINE; + LcdFlags attr = (sub == index ? INVERS : 0); + coord_t y = MENU_HEADER_HEIGHT + lineIndex * FH; + lcdDrawNumber(3, y, index + 1, LEADING0 | LEFT, 2); + lcdDrawText(3 * FW, y, label, (sub == index ? INVERS : 0)); + if (attr && s_editMode > 0) { + s_editMode = 0; + killAllEvents(); + return true; + } + } } return false; }