diff --git a/radio/src/thirdparty/libopenui/src/expansion_panel.cpp b/radio/src/thirdparty/libopenui/src/expansion_panel.cpp index a561454e2..10b67f07c 100644 --- a/radio/src/thirdparty/libopenui/src/expansion_panel.cpp +++ b/radio/src/thirdparty/libopenui/src/expansion_panel.cpp @@ -26,6 +26,14 @@ void ExpansionPanel::updateHeight() setHeight(newHeight); } +void ExpansionPanel::setFocus(uint8_t flag) +{ + if (!enabled || isOpen) + FormGroup::setFocus(flag); + else + header->setFocus(flag); +} + ExpansionPanelHeader::ExpansionPanelHeader(ExpansionPanel * parent): FormGroup(parent, {0, 0, parent->width(), parent->height()}, FORWARD_SCROLL) { @@ -57,8 +65,10 @@ void ExpansionPanelHeader::onEvent(event_t event) #if defined(HARDWARE_TOUCH) bool ExpansionPanelHeader::onTouchEnd(coord_t, coord_t) { - static_cast(parent)->toggle(); - setFocus(SET_FOCUS_DEFAULT); + if (enabled) { + static_cast(parent)->toggle(); + setFocus(SET_FOCUS_DEFAULT); + } return true; } #endif diff --git a/radio/src/thirdparty/libopenui/src/expansion_panel.h b/radio/src/thirdparty/libopenui/src/expansion_panel.h index 77b2eaeb1..6d860504a 100644 --- a/radio/src/thirdparty/libopenui/src/expansion_panel.h +++ b/radio/src/thirdparty/libopenui/src/expansion_panel.h @@ -73,13 +73,7 @@ class ExpansionPanel: public FormGroup void updateHeight(); - void setFocus(uint8_t flag) override - { - if (isOpen) - FormGroup::setFocus(flag); - else - header->setFocus(flag); - } + void setFocus(uint8_t flag) override; FormGroup * body = nullptr;