From 06ab7f523beffc2c55ff37fc36dba113eb384492 Mon Sep 17 00:00:00 2001 From: Daniel Date: Sat, 7 Mar 2026 13:49:53 +0100 Subject: [PATCH] Add: Stream-Warnung beim Beenden der Electron App Dialog "Stream laeuft noch!" erscheint nur wenn ein aktiver Video-Stream erkannt wird. Ohne Stream schliesst die App normal. Co-Authored-By: Claude Opus 4.6 --- electron/main.js | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/electron/main.js b/electron/main.js index 134c29e..6d707bd 100644 --- a/electron/main.js +++ b/electron/main.js @@ -1,4 +1,4 @@ -const { app, BrowserWindow, session, shell, desktopCapturer, autoUpdater } = require('electron'); +const { app, BrowserWindow, session, shell, desktopCapturer, autoUpdater, dialog } = require('electron'); const path = require('path'); const { setupAdBlocker } = require('./ad-blocker'); @@ -99,6 +99,27 @@ function createWindow() { shell.openExternal(url); } }); + + // Warn before closing if a stream is active + let forceClose = false; + mainWindow.on('close', (event) => { + if (forceClose) return; + event.preventDefault(); + mainWindow.webContents.executeJavaScript( + `Array.from(document.querySelectorAll('video')).some(v => v.srcObject?.active)` + ).then((isStreaming) => { + if (!isStreaming) { forceClose = true; mainWindow.close(); return; } + const result = dialog.showMessageBoxSync(mainWindow, { + type: 'warning', + buttons: ['Beenden', 'Abbrechen'], + defaultId: 1, + cancelId: 1, + title: 'Stream laeuft noch!', + message: 'Ein Stream ist noch aktiv.\nBeim Beenden wird der Stream gestoppt.', + }); + if (result === 0) { forceClose = true; mainWindow.close(); } + }).catch(() => { forceClose = true; mainWindow.close(); }); + }); } app.whenReady().then(() => {