From 517b957c371eff00e573ae2a8e7229220426465d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20Kr=C3=BChlmann?= Date: Tue, 13 Jan 2026 14:51:39 +0100 Subject: [PATCH] Add electron resize to server --- src/main/resources/static/js/broadcast.js | 2 ++ src/main/resources/static/js/electron.js | 24 +++++++++++++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 src/main/resources/static/js/electron.js diff --git a/src/main/resources/static/js/broadcast.js b/src/main/resources/static/js/broadcast.js index 332cdde..321ed58 100644 --- a/src/main/resources/static/js/broadcast.js +++ b/src/main/resources/static/js/broadcast.js @@ -1,7 +1,9 @@ import { BroadcastRenderer } from "./broadcast/renderer.js"; +import { setUpElectronWindowResizeListener } from "./electron.js"; const canvas = document.getElementById("broadcast-canvas"); const scriptLayer = document.getElementById("broadcast-script-layer"); const renderer = new BroadcastRenderer({ canvas, scriptLayer, broadcaster, showToast }); +setUpElectronWindowResizeListener(canvas); renderer.start(); diff --git a/src/main/resources/static/js/electron.js b/src/main/resources/static/js/electron.js new file mode 100644 index 0000000..abcb3de --- /dev/null +++ b/src/main/resources/static/js/electron.js @@ -0,0 +1,24 @@ +export function setUpElectronWindowResizeListener(canvas) { + if ( + typeof window !== "undefined" && + window.store && + typeof window.store.setWindowSize === "function" + ) { + console.info("Electron environment detected, setting up resize listener."); + } else { + console.info("Not running in Electron environment, skipping resize listener setup."); + return; + } + + const resize = () => { + const rect = canvas.getBoundingClientRect(); + window.store.setWindowSize( + Math.ceil(rect.width), + Math.ceil(rect.height) + ); + }; + + resize(); + + new ResizeObserver(resize).observe(canvas); +}