diff --git a/radio/src/thirdparty/libopenui/src/mainwindow.h b/radio/src/thirdparty/libopenui/src/mainwindow.h index 2b4368917..682d200ca 100644 --- a/radio/src/thirdparty/libopenui/src/mainwindow.h +++ b/radio/src/thirdparty/libopenui/src/mainwindow.h @@ -25,15 +25,16 @@ class MainWindow: public Window { - public: + // singleton MainWindow(): Window(nullptr, {0, 0, LCD_W, LCD_H}), invalidatedRect(rect) { Layer::push(this); - _instance = this; } + public: + ~MainWindow() override { children.clear(); @@ -41,6 +42,9 @@ class MainWindow: public Window static MainWindow * instance() { + if (!_instance) + _instance = new MainWindow(); + return _instance; }