From d1ab02b5c9ad853f03bdfef3dafc90969ad85e45 Mon Sep 17 00:00:00 2001 From: Raphael Coeffic Date: Tue, 6 Apr 2021 08:51:47 +0200 Subject: [PATCH] MainWindow is a singleton This prevents double instantiation by design rather than by convention. --- radio/src/thirdparty/libopenui/src/mainwindow.h | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) 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; }