Event fixes

This commit is contained in:
UnlegitDqrk
2026-02-27 23:54:33 +01:00
parent aed0f35c34
commit cda595907f
6 changed files with 75 additions and 36 deletions

View File

@@ -82,23 +82,13 @@ public final class FxLuaScriptEngine implements AutoCloseable {
.sandbox(true)
);
// Create runtime first (router lives inside it).
HostServices.StdoutConsole console = new HostServices.StdoutConsole("[lua] ");
FxUiHost uiHost = new FxUiHost(engine, dom);
FxWebViewResourceHost resourceHost = new FxWebViewResourceHost(engine);
// runtime depends on services; events depends on runtime router.
// We'll create eventHost after runtime, then build HostServices with it.
LuaRuntime rt = new LuaRuntime(globals, new HostServices.Default(uiHost, dom, null, resourceHost, console), policy);
FxEventHost eventHost = new FxEventHost(dom, rt.eventRouter());
// Rebuild services including eventHost and reinstall tables.
FxEventHost eventHost = new FxEventHost(dom);
HostServices services = new HostServices.Default(uiHost, dom, eventHost, resourceHost, console);
// Replace runtime with correct services (clean and deterministic).
rt.close();
rt = new LuaRuntime(globals, services, policy);
LuaRuntime rt = new LuaRuntime(globals, services, policy);
eventHost.setRouter(rt.eventRouter());
rt.installStdTables(true);
rt.bootstrapFromDom();
@@ -131,4 +121,4 @@ public final class FxLuaScriptEngine implements AutoCloseable {
}
}
}
}
}