diff --git a/radio/src/thirdparty/libopenui/src/modal_window.h b/radio/src/thirdparty/libopenui/src/modal_window.h index 9fed468bd..698a37747 100644 --- a/radio/src/thirdparty/libopenui/src/modal_window.h +++ b/radio/src/thirdparty/libopenui/src/modal_window.h @@ -39,9 +39,10 @@ class ModalWindow: public Window if (_deleted) return; - if (previousFocus) { + if (previousFocus && (!focusWindow || focusWindow->isChild(this))) { previousFocus->setFocus(SET_FOCUS_DEFAULT); } + Window::deleteLater(); } @@ -73,6 +74,11 @@ class ModalWindow: public Window closeAllowed = value; } + void forgetPreviousFocus() + { + previousFocus = nullptr; + } + protected: Window * previousFocus = nullptr; bool closeAllowed = true;