From 25a3a20642cdc177de0c3770e6681a6579e1efa7 Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Wed, 4 Nov 2020 16:48:53 +0100 Subject: [PATCH] [Window] deleteLater made virtual --- radio/src/thirdparty/libopenui/src/modal_window.h | 9 +++++---- radio/src/thirdparty/libopenui/src/window.h | 8 +++++--- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/radio/src/thirdparty/libopenui/src/modal_window.h b/radio/src/thirdparty/libopenui/src/modal_window.h index 4240fe43e..5219818af 100644 --- a/radio/src/thirdparty/libopenui/src/modal_window.h +++ b/radio/src/thirdparty/libopenui/src/modal_window.h @@ -33,7 +33,7 @@ class ModalWindow: public Window } #endif - void deleteLater() + void deleteLater(bool detach=true) override { if (_deleted) return; @@ -42,7 +42,7 @@ class ModalWindow: public Window previousFocus->setFocus(SET_FOCUS_DEFAULT); } - Window::deleteLater(); + Window::deleteLater(detach); } void paint(BitmapBuffer * dc) override; @@ -87,11 +87,12 @@ class ModalWindow: public Window } protected: - Window * previousFocus = nullptr; + Window * previousFocus; bool closeAllowed = true; }; -class ModalWindowContent: public Window { +class ModalWindowContent: public Window +{ public: explicit ModalWindowContent(ModalWindow * parent, const rect_t & rect): Window(parent, rect, OPAQUE) diff --git a/radio/src/thirdparty/libopenui/src/window.h b/radio/src/thirdparty/libopenui/src/window.h index efd6b5122..8af450f38 100644 --- a/radio/src/thirdparty/libopenui/src/window.h +++ b/radio/src/thirdparty/libopenui/src/window.h @@ -50,14 +50,16 @@ constexpr WindowFlags PAINT_CHILDREN_FIRST = 1u << 6u; constexpr WindowFlags PUSH_FRONT = 1u << 7u; constexpr WindowFlags WINDOW_FLAGS_LAST = PUSH_FRONT; -enum SetFocusFlag { +enum SetFocusFlag +{ SET_FOCUS_DEFAULT, SET_FOCUS_FORWARD, SET_FOCUS_BACKWARD, SET_FOCUS_FIRST }; -class Window { +class Window +{ friend class GridLayout; public: @@ -135,7 +137,7 @@ class Window { focusHandler = std::move(handler); } - void deleteLater(bool detach=true); + virtual void deleteLater(bool detach=true); void clear();