diff --git a/radio/src/gui/colorlcd/standalone_lua.cpp b/radio/src/gui/colorlcd/standalone_lua.cpp index 4f4306977..95bd504d0 100644 --- a/radio/src/gui/colorlcd/standalone_lua.cpp +++ b/radio/src/gui/colorlcd/standalone_lua.cpp @@ -155,25 +155,23 @@ void StandaloneLuaWindow::runLua(event_t evt) // Set global LUA LCD buffer luaLcdBuffer = &lcdBuffer; - TRACE("evt = 0x%x", evt); + if (luaState != INTERPRETER_RELOAD_PERMANENT_SCRIPTS) { + if (luaTask(evt, true)) { +#if defined(DEBUG_WINDOWS) + TRACE("# StandaloneLuaWindow::invalidate()"); +#endif + invalidate(); + } else { + // The script was preempted, and the LCD should not be updated yet + } + } - bool hasRun = luaTask(evt, true); - if (luaState == INTERPRETER_RELOAD_PERMANENT_SCRIPTS) { // Script does not run anymore... TRACE("LUA standalone script exited: deleting window!"); deleteLater(); } - if (hasRun) { -#if defined(DEBUG_WINDOWS) - TRACE("# StandaloneLuaWindow::invalidate()"); -#endif - invalidate(); - } else { - // The script was preempted, and the LCD should not be updated yet - } - // Kill global LUA LCD buffer luaLcdBuffer = nullptr; }