diff --git a/radio/src/fonts/extra_16px.png b/radio/src/fonts/extra_16px.png index ae21c8403..6bfcf4f00 100644 Binary files a/radio/src/fonts/extra_16px.png and b/radio/src/fonts/extra_16px.png differ diff --git a/radio/src/fonts/extra_17px.png b/radio/src/fonts/extra_17px.png index ae21c8403..6bfcf4f00 100644 Binary files a/radio/src/fonts/extra_17px.png and b/radio/src/fonts/extra_17px.png differ diff --git a/radio/src/gui/colorlcd/sourcechoice.cpp b/radio/src/gui/colorlcd/sourcechoice.cpp index 1e45220ac..5b2232838 100644 --- a/radio/src/gui/colorlcd/sourcechoice.cpp +++ b/radio/src/gui/colorlcd/sourcechoice.cpp @@ -79,7 +79,6 @@ void SourceChoice::fillMenu(Menu * menu, const std::function & fi int current = 0; menu->removeLines(); - for (int i = vmin; i <= vmax; ++i) { if (filter && !filter(i)) continue; if (isValueAvailable && !isValueAvailable(i)) continue; @@ -96,7 +95,7 @@ void SourceChoice::fillMenu(Menu * menu, const std::function & fi #if defined(AUTOSOURCE) menu->setWaitHandler([=]() { - int8_t val = getMovedSource(0); + int16_t val = getMovedSource(0); if (val) { if (filter && filter(val)) { return; @@ -105,7 +104,17 @@ void SourceChoice::fillMenu(Menu * menu, const std::function & fi setValue(val); } this->fillMenu(menu); - menu->setFocusBody(); + } + else { + swsrc_t swtch = getMovedSwitch(); + if (swtch) { + div_t info = switchInfo(swtch); + val = info.quot + MIXSRC_FIRST_SWITCH; + if (val && (!filter || !filter(val))) { + if (setValue) setValue(val); + this->fillMenu(menu); + } + } } }); #endif diff --git a/radio/src/gui/colorlcd/switchchoice.cpp b/radio/src/gui/colorlcd/switchchoice.cpp index 3e0dcdb08..6f90e8878 100644 --- a/radio/src/gui/colorlcd/switchchoice.cpp +++ b/radio/src/gui/colorlcd/switchchoice.cpp @@ -77,18 +77,6 @@ void SwitchChoice::fillMenu(Menu * menu, std::function filter) if (current >= 0) { menu->select(current); } -} - -void SwitchChoice::openMenu() -{ - auto menu = new Menu(this); - fillMenu(menu); - - menu->setToolbar(new SwitchChoiceMenuToolbar(this, menu)); - menu->setCloseHandler([=]() { - editMode = false; - setFocus(SET_FOCUS_DEFAULT); - }); #if defined(AUTOSWITCH) menu->setWaitHandler([=]() { @@ -112,6 +100,18 @@ void SwitchChoice::openMenu() #endif } +void SwitchChoice::openMenu() +{ + auto menu = new Menu(this); + fillMenu(menu); + + menu->setToolbar(new SwitchChoiceMenuToolbar(this, menu)); + menu->setCloseHandler([=]() { + editMode = false; + setFocus(SET_FOCUS_DEFAULT); + }); +} + #if defined(HARDWARE_KEYS) void SwitchChoice::onEvent(event_t event) {