diff --git a/radio/src/thirdparty/libopenui/src/choice.cpp b/radio/src/thirdparty/libopenui/src/choice.cpp index fdcdaac93..26a93f53a 100644 --- a/radio/src/thirdparty/libopenui/src/choice.cpp +++ b/radio/src/thirdparty/libopenui/src/choice.cpp @@ -184,6 +184,8 @@ void Choice::onEvent(event_t event) void Choice::openMenu() { + setEditMode(true); // this needs to be done first before menu is created. + auto menu = new Menu(this); if (!menuTitle.empty()) menu->setTitle(menuTitle); @@ -224,13 +226,9 @@ void Choice::openMenu() beforeDisplayMenuHandler(menu); } - menu->setCloseHandler([=]() { setEditMode(false); }); - - setEditMode(true); - invalidate(); } #if defined(HARDWARE_TOUCH) diff --git a/radio/src/thirdparty/libopenui/src/menu.cpp b/radio/src/thirdparty/libopenui/src/menu.cpp index 66b9136c2..3b4440649 100644 --- a/radio/src/thirdparty/libopenui/src/menu.cpp +++ b/radio/src/thirdparty/libopenui/src/menu.cpp @@ -52,6 +52,7 @@ MenuBody::MenuBody(Window * parent, const rect_t & rect): Window(parent, rect, OPAQUE, 0, lv_list_create) { setPageHeight(MENUS_LINE_HEIGHT); + setFocus(); } void MenuBody::addLine(const std::string &text, std::function onPress,