diff --git a/radio/src/gui/colorlcd/libui/mainwindow.cpp b/radio/src/gui/colorlcd/libui/mainwindow.cpp index ddf5caa2b..21d6dcf15 100644 --- a/radio/src/gui/colorlcd/libui/mainwindow.cpp +++ b/radio/src/gui/colorlcd/libui/mainwindow.cpp @@ -64,7 +64,8 @@ void MainWindow::run() auto start = timersGetMsTick(); #endif - ViewMain::refreshWidgets(); + if (widgetRefreshEnable) + ViewMain::refreshWidgets(); auto opaque = Window::firstOpaque(); if (opaque) { diff --git a/radio/src/gui/colorlcd/libui/mainwindow.h b/radio/src/gui/colorlcd/libui/mainwindow.h index 5273eb159..54f0e589c 100644 --- a/radio/src/gui/colorlcd/libui/mainwindow.h +++ b/radio/src/gui/colorlcd/libui/mainwindow.h @@ -51,9 +51,12 @@ class MainWindow: public Window void shutdown(); + void enableWidgetRefresh(bool state) { widgetRefreshEnable = state; } + protected: lv_obj_t* background = nullptr; const BitmapBuffer *backgroundBitmap = nullptr; + bool widgetRefreshEnable = true; static MainWindow * _instance; diff --git a/radio/src/gui/colorlcd/standalone_lua.cpp b/radio/src/gui/colorlcd/standalone_lua.cpp index 9edf75ddf..f26ada8c9 100644 --- a/radio/src/gui/colorlcd/standalone_lua.cpp +++ b/radio/src/gui/colorlcd/standalone_lua.cpp @@ -136,6 +136,8 @@ StandaloneLuaWindow::StandaloneLuaWindow(bool useLvgl, int initFn, int runFn) : pushLayer(true); + MainWindow::instance()->enableWidgetRefresh(false); + if (useLvglLayout()) { padAll(PAD_ZERO); etx_scrollbar(lvobj); @@ -205,8 +207,6 @@ void StandaloneLuaWindow::deleteLater() luaScriptManager = nullptr; - Window::deleteLater(); - _instance = nullptr; #if defined(USE_HATS_AS_KEYS) @@ -217,6 +217,8 @@ void StandaloneLuaWindow::deleteLater() luaEmptyEventBuffer(); + MainWindow::instance()->enableWidgetRefresh(true); + Window::deleteLater(); }