From f50247d923ee3eb1084f15790cf3f9b142990ac5 Mon Sep 17 00:00:00 2001 From: Core <64542347+coredev-uk@users.noreply.github.com> Date: Sat, 30 Jul 2022 09:35:47 +0100 Subject: [PATCH 1/3] Moved to minimize hide window instead of close --- src/main/base/browserwindow.ts | 83 +++++++++++++++++++++------------- src/renderer/main/app.js | 4 ++ 2 files changed, 56 insertions(+), 31 deletions(-) diff --git a/src/main/base/browserwindow.ts b/src/main/base/browserwindow.ts index a63dec93..0b3381ef 100644 --- a/src/main/base/browserwindow.ts +++ b/src/main/base/browserwindow.ts @@ -1442,69 +1442,90 @@ export class BrowserWindow { FULL_SCREEN: 3, }; let wndState = WND_STATE.NORMAL; + const win = BrowserWindow.win; + let isQuitting = false; - BrowserWindow.win.on("resize", (_: any) => { - const isMaximized = BrowserWindow.win.isMaximized(); - const isMinimized = BrowserWindow.win.isMinimized(); - const isFullScreen = BrowserWindow.win.isFullScreen(); + win.on("resize", (_: any) => { + const isMaximized = win.isMaximized(); + const isMinimized = win.isMinimized(); + const isFullScreen = win.isFullScreen(); const state = wndState; if (isMinimized && state !== WND_STATE.MINIMIZED) { wndState = WND_STATE.MINIMIZED; - BrowserWindow.win.webContents.send('window-state-changed', 'minimized'); + win.webContents.send('window-state-changed', 'minimized'); } else if (isFullScreen && state !== WND_STATE.FULL_SCREEN) { wndState = WND_STATE.FULL_SCREEN; - BrowserWindow.win.webContents.send('window-state-changed', 'fullscreen') + win.webContents.send('window-state-changed', 'fullscreen') } else if (isMaximized && state !== WND_STATE.MAXIMIZED) { wndState = WND_STATE.MAXIMIZED; - BrowserWindow.win.webContents.send('window-state-changed', 'maximized') - BrowserWindow.win.webContents.executeJavaScript(`app.chrome.maximized = true`); + win.webContents.send('window-state-changed', 'maximized') + win.webContents.executeJavaScript(`app.chrome.maximized = true`); } else if (state !== WND_STATE.NORMAL) { wndState = WND_STATE.NORMAL; - BrowserWindow.win.webContents.send('window-state-changed', 'normal') - BrowserWindow.win.webContents.executeJavaScript( + win.webContents.send('window-state-changed', 'normal') + win.webContents.executeJavaScript( `app.chrome.maximized = false` ); } }); - let isQuiting = false - - BrowserWindow.win.on("close", (event: Event) => { - if ((utils.getStoreValue('general.close_button_hide') || process.platform === "darwin") && !isQuiting) { - event.preventDefault(); - BrowserWindow.win.hide(); - } else { - BrowserWindow.win.webContents.executeJavaScript(` - window.localStorage.setItem("currentTrack", JSON.stringify(app.mk.nowPlayingItem)); - window.localStorage.setItem("currentTime", JSON.stringify(app.mk.currentPlaybackTime)); - window.localStorage.setItem("currentQueue", JSON.stringify(app.mk.queue._unplayedQueueItems)); - ipcRenderer.send('stopGCast','');`) - BrowserWindow.win.destroy(); + // let isQuiting = false + win.on("minimize", (e: any) => { + console.log("[Window - App.ts]", "Minimized") + if (process.platform !== "darwin" && utils.getStoreValue("general.close_button_hide")) { + console.log("Minimizing") + e.preventDefault() + win.hide(); } }) + win.on("close", (e: any) => { + console.log("[Window - App.ts] Closing") + if (process.platform === "darwin" && !isQuitting) { + console.log("[Window - App.ts]", "hide on close"); + e.preventDefault() + win.hide() + } + win.webContents.executeJavaScript(` + window.localStorage.setItem("currentTrack", JSON.stringify(app.mk.nowPlayingItem)); + window.localStorage.setItem("currentTime", JSON.stringify(app.mk.currentPlaybackTime)); + window.localStorage.setItem("currentQueue", JSON.stringify(app.mk.queue._unplayedQueueItems)); + ipcRenderer.send('stopGCast','');`) + }) + app.on('before-quit', () => { - isQuiting = true + console.log("[Window - App.ts] Before Quit") + isQuitting = true }); app.on('activate', function () { - BrowserWindow.win.show() - BrowserWindow.win.focus() + console.log("[Window - App.ts] Activate") + win.show() }); // Quit when all windows are closed. app.on('window-all-closed', () => { - // On macOS it is common for applications and their menu bar - // to stay active until the user quits explicitly with Cmd + Q if (process.platform !== 'darwin') { app.quit() } }) - BrowserWindow.win.on("closed", () => { - BrowserWindow.win = null; - }); + // BrowserWindow.win.on("close", (event: Event) => { + // if ((utils.getStoreValue('general.close_button_hide') || process.platform === "darwin") && !isQuiting) { + // event.preventDefault(); + // BrowserWindow.win.hide(); + // } else { + // BrowserWindow.win.webContents.executeJavaScript(` + // window.localStorage.setItem("currentTrack", JSON.stringify(app.mk.nowPlayingItem)); + // window.localStorage.setItem("currentTime", JSON.stringify(app.mk.currentPlaybackTime)); + // window.localStorage.setItem("currentQueue", JSON.stringify(app.mk.queue._unplayedQueueItems)); + // ipcRenderer.send('stopGCast','');`) + // BrowserWindow.win.destroy(); + // } + // }) + + // Set window Handler BrowserWindow.win.webContents.setWindowOpenHandler((x: any) => { diff --git a/src/renderer/main/app.js b/src/renderer/main/app.js index 5698d739..8e67e2c2 100644 --- a/src/renderer/main/app.js +++ b/src/renderer/main/app.js @@ -19,6 +19,10 @@ window.CiderCache = CiderCache window.CiderFrontAPI = CiderFrontAPI window.wsapi = wsapi +window.onbeforeunload = () => { + console.log("[app] onbeforeunload") +} + if (app.cfg.advanced.disableLogging === true) { window.console = { log: function() {}, From f30c905a4bb69e11cfb13dbc981b92c07f229ea0 Mon Sep 17 00:00:00 2001 From: Core <64542347+coredev-uk@users.noreply.github.com> Date: Sat, 30 Jul 2022 11:05:31 +0100 Subject: [PATCH 2/3] Moved state saving to before quit --- src/main/base/browserwindow.ts | 30 ++++++------------------------ src/renderer/main/app.js | 4 ---- 2 files changed, 6 insertions(+), 28 deletions(-) diff --git a/src/main/base/browserwindow.ts b/src/main/base/browserwindow.ts index 0b3381ef..aa9b99a6 100644 --- a/src/main/base/browserwindow.ts +++ b/src/main/base/browserwindow.ts @@ -1469,8 +1469,6 @@ export class BrowserWindow { } }); - - // let isQuiting = false win.on("minimize", (e: any) => { console.log("[Window - App.ts]", "Minimized") if (process.platform !== "darwin" && utils.getStoreValue("general.close_button_hide")) { @@ -1487,16 +1485,16 @@ export class BrowserWindow { e.preventDefault() win.hide() } - win.webContents.executeJavaScript(` - window.localStorage.setItem("currentTrack", JSON.stringify(app.mk.nowPlayingItem)); - window.localStorage.setItem("currentTime", JSON.stringify(app.mk.currentPlaybackTime)); - window.localStorage.setItem("currentQueue", JSON.stringify(app.mk.queue._unplayedQueueItems)); - ipcRenderer.send('stopGCast','');`) }) app.on('before-quit', () => { console.log("[Window - App.ts] Before Quit") - isQuitting = true + isQuitting = true; + win.webContents.executeJavaScript(` + window.localStorage.setItem("currentTrack", JSON.stringify(app.mk.nowPlayingItem)); + window.localStorage.setItem("currentTime", JSON.stringify(app.mk.currentPlaybackTime)); + window.localStorage.setItem("currentQueue", JSON.stringify(app.mk.queue._unplayedQueueItems)); + ipcRenderer.send('stopGCast','');`) }); app.on('activate', function () { @@ -1511,22 +1509,6 @@ export class BrowserWindow { } }) - // BrowserWindow.win.on("close", (event: Event) => { - // if ((utils.getStoreValue('general.close_button_hide') || process.platform === "darwin") && !isQuiting) { - // event.preventDefault(); - // BrowserWindow.win.hide(); - // } else { - // BrowserWindow.win.webContents.executeJavaScript(` - // window.localStorage.setItem("currentTrack", JSON.stringify(app.mk.nowPlayingItem)); - // window.localStorage.setItem("currentTime", JSON.stringify(app.mk.currentPlaybackTime)); - // window.localStorage.setItem("currentQueue", JSON.stringify(app.mk.queue._unplayedQueueItems)); - // ipcRenderer.send('stopGCast','');`) - // BrowserWindow.win.destroy(); - // } - // }) - - - // Set window Handler BrowserWindow.win.webContents.setWindowOpenHandler((x: any) => { if (x.url.includes("apple") || x.url.includes("localhost")) { diff --git a/src/renderer/main/app.js b/src/renderer/main/app.js index 8e67e2c2..5698d739 100644 --- a/src/renderer/main/app.js +++ b/src/renderer/main/app.js @@ -19,10 +19,6 @@ window.CiderCache = CiderCache window.CiderFrontAPI = CiderFrontAPI window.wsapi = wsapi -window.onbeforeunload = () => { - console.log("[app] onbeforeunload") -} - if (app.cfg.advanced.disableLogging === true) { window.console = { log: function() {}, From 7d2dbe99b17b331540984ba93711541a2b3ac91d Mon Sep 17 00:00:00 2001 From: Core <64542347+coredev-uk@users.noreply.github.com> Date: Sat, 30 Jul 2022 19:20:33 +0100 Subject: [PATCH 3/3] Moved it back --- src/main/base/browserwindow.ts | 22 ++++++---------------- 1 file changed, 6 insertions(+), 16 deletions(-) diff --git a/src/main/base/browserwindow.ts b/src/main/base/browserwindow.ts index aa9b99a6..4401f484 100644 --- a/src/main/base/browserwindow.ts +++ b/src/main/base/browserwindow.ts @@ -1469,36 +1469,26 @@ export class BrowserWindow { } }); - win.on("minimize", (e: any) => { - console.log("[Window - App.ts]", "Minimized") - if (process.platform !== "darwin" && utils.getStoreValue("general.close_button_hide")) { - console.log("Minimizing") - e.preventDefault() - win.hide(); - } - }) - win.on("close", (e: any) => { - console.log("[Window - App.ts] Closing") - if (process.platform === "darwin" && !isQuitting) { - console.log("[Window - App.ts]", "hide on close"); + if ((process.platform === "darwin" || utils.getStoreValue("general.close_button_hide")) && !isQuitting) { e.preventDefault() win.hide() } }) - app.on('before-quit', () => { - console.log("[Window - App.ts] Before Quit") - isQuitting = true; + win.on("closed", (_: any) => { win.webContents.executeJavaScript(` window.localStorage.setItem("currentTrack", JSON.stringify(app.mk.nowPlayingItem)); window.localStorage.setItem("currentTime", JSON.stringify(app.mk.currentPlaybackTime)); window.localStorage.setItem("currentQueue", JSON.stringify(app.mk.queue._unplayedQueueItems)); ipcRenderer.send('stopGCast','');`) + }) + + app.on('before-quit', () => { + isQuitting = true; }); app.on('activate', function () { - console.log("[Window - App.ts] Activate") win.show() });