Fixing standalone scripts with preemption on colorlcd

This commit is contained in:
jfrickmann
2021-07-22 15:02:44 -04:00
parent dcac3cb9da
commit 76d2ef54e3
+10 -12
View File
@@ -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;
}