diff --git a/radio/src/thirdparty/libopenui/src/choice.cpp b/radio/src/thirdparty/libopenui/src/choice.cpp index e5585fbc3..f7f55af44 100644 --- a/radio/src/thirdparty/libopenui/src/choice.cpp +++ b/radio/src/thirdparty/libopenui/src/choice.cpp @@ -161,7 +161,10 @@ void Choice::openMenu() menu->setCloseHandler([=]() { editMode = false; - setFocus(SET_FOCUS_DEFAULT); + auto focus = getFocus(); + if (focus && focus->isChild(menu)) { + setFocus(SET_FOCUS_DEFAULT); + } }); setEditMode(true); diff --git a/radio/src/thirdparty/libopenui/src/form.h b/radio/src/thirdparty/libopenui/src/form.h index 3bb9b8af5..da8927b26 100644 --- a/radio/src/thirdparty/libopenui/src/form.h +++ b/radio/src/thirdparty/libopenui/src/form.h @@ -62,7 +62,7 @@ class FormField: public Window { editMode = newEditMode; } - void enable(bool enabled) + void enable(bool enabled = true) { this->enabled = enabled; invalidate();