From 898c0b08fa9bef18f58f0211a990ea1c2adce37c Mon Sep 17 00:00:00 2001 From: ace-beattie Date: Thu, 5 May 2022 20:46:49 -0600 Subject: [PATCH 1/3] Move to original location on miniplayer close. --- src/main/base/browserwindow.ts | 5 +++++ src/renderer/main/vueapp.js | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/src/main/base/browserwindow.ts b/src/main/base/browserwindow.ts index 8ec13a9d..99300827 100644 --- a/src/main/base/browserwindow.ts +++ b/src/main/base/browserwindow.ts @@ -1043,6 +1043,11 @@ export class BrowserWindow { BrowserWindow.win.setResizable(!lock); }); + // Move window + ipcMain.on("windowmove", (_event, x, y) => { + BrowserWindow.win.setBounds({x, y}); + }); + //Fullscreen ipcMain.on('setFullScreen', (_event, flag) => { BrowserWindow.win.setFullScreen(flag) diff --git a/src/renderer/main/vueapp.js b/src/renderer/main/vueapp.js index e957839d..ebb778aa 100644 --- a/src/renderer/main/vueapp.js +++ b/src/renderer/main/vueapp.js @@ -148,6 +148,8 @@ const app = new Vue({ }, tmpHeight: '', tmpWidth: '', + tmpX: '', + tmpY: '', tmpVar: [], notification: false, chrome: { @@ -4109,6 +4111,8 @@ const app = new Vue({ if (flag) { this.tmpWidth = window.innerWidth; this.tmpHeight = window.innerHeight; + this.tmpX = window.screenX; + this.tmpY = window.screenY; ipcRenderer.send('unmaximize'); ipcRenderer.send('windowmin', 250, 250) ipcRenderer.send('windowresize', 300, 300, false) @@ -4116,6 +4120,7 @@ const app = new Vue({ } else { ipcRenderer.send('windowmin', 844, 410) ipcRenderer.send('windowresize', this.tmpWidth, this.tmpHeight, false) + ipcRenderer.send('windowmove', this.tmpX, this.tmpY) ipcRenderer.send('windowontop', false) //this.cfg.visual.miniplayer_top_toggle = true; app.appMode = 'player'; From 769bd8c7ed9421dc629bd2728a53be34867638f1 Mon Sep 17 00:00:00 2001 From: ace-beattie Date: Thu, 5 May 2022 21:02:52 -0600 Subject: [PATCH 2/3] Remember miniplayer location --- src/renderer/main/vueapp.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/renderer/main/vueapp.js b/src/renderer/main/vueapp.js index ebb778aa..421499ca 100644 --- a/src/renderer/main/vueapp.js +++ b/src/renderer/main/vueapp.js @@ -150,6 +150,8 @@ const app = new Vue({ tmpWidth: '', tmpX: '', tmpY: '', + miniTmpX: '', + miniTmpY: '', tmpVar: [], notification: false, chrome: { @@ -4115,9 +4117,12 @@ const app = new Vue({ this.tmpY = window.screenY; ipcRenderer.send('unmaximize'); ipcRenderer.send('windowmin', 250, 250) + ipcRenderer.send('windowmove', this.miniTmpX, this.miniTmpY) ipcRenderer.send('windowresize', 300, 300, false) app.appMode = 'mini'; } else { + this.miniTmpX = window.screenX; + this.miniTmpY = window.screenY; ipcRenderer.send('windowmin', 844, 410) ipcRenderer.send('windowresize', this.tmpWidth, this.tmpHeight, false) ipcRenderer.send('windowmove', this.tmpX, this.tmpY) From ca059d6236a318e97576e7995cb59428ea03947b Mon Sep 17 00:00:00 2001 From: ace-beattie Date: Thu, 5 May 2022 21:06:46 -0600 Subject: [PATCH 3/3] Guard miniTmpX/Y aren't empty for initial setting of miniplayer --- src/renderer/main/vueapp.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/renderer/main/vueapp.js b/src/renderer/main/vueapp.js index 421499ca..40192c9a 100644 --- a/src/renderer/main/vueapp.js +++ b/src/renderer/main/vueapp.js @@ -4117,7 +4117,7 @@ const app = new Vue({ this.tmpY = window.screenY; ipcRenderer.send('unmaximize'); ipcRenderer.send('windowmin', 250, 250) - ipcRenderer.send('windowmove', this.miniTmpX, this.miniTmpY) + if (this.miniTmpX !== '' && this.miniTmpY !== '') ipcRenderer.send('windowmove', this.miniTmpX, this.miniTmpY) ipcRenderer.send('windowresize', 300, 300, false) app.appMode = 'mini'; } else {