diff --git a/radio/src/thirdparty/libopenui/src/window.cpp b/radio/src/thirdparty/libopenui/src/window.cpp index c6df7c10c..aa24e9457 100644 --- a/radio/src/thirdparty/libopenui/src/window.cpp +++ b/radio/src/thirdparty/libopenui/src/window.cpp @@ -121,7 +121,7 @@ void Window::setFocus(uint8_t flag) clearFocus(); focusWindow = this; if (focusHandler) { - focusHandler(); + focusHandler(true); } } diff --git a/radio/src/thirdparty/libopenui/src/window.h b/radio/src/thirdparty/libopenui/src/window.h index f9cce8e8e..a261677aa 100644 --- a/radio/src/thirdparty/libopenui/src/window.h +++ b/radio/src/thirdparty/libopenui/src/window.h @@ -131,7 +131,7 @@ class Window { closeHandler = std::move(handler); } - void setFocusHandler(std::function handler) + void setFocusHandler(std::function handler) { focusHandler = std::move(handler); } @@ -360,7 +360,7 @@ class Window { static std::list trash; std::function closeHandler; - std::function focusHandler; + std::function focusHandler; void addChild(Window * window, bool front = false) { @@ -389,6 +389,9 @@ class Window { virtual void onFocusLost() { TRACE_WINDOWS("%s onFocusLost()", getWindowDebugString().c_str()); + if (focusHandler) { + focusHandler(false); + } invalidate(); }