diff --git a/src/main/plugins/minimizeToTray.ts b/src/main/plugins/minimizeToTray.ts index 0bb13492..ec652e1b 100644 --- a/src/main/plugins/minimizeToTray.ts +++ b/src/main/plugins/minimizeToTray.ts @@ -10,6 +10,7 @@ export default class MinimizeToTray { private _app: any; private _store: any; private _tray: any; + private _forceQuit = false; /** * Base Plugin Details (Eventually implemented into a GUI in settings) @@ -46,7 +47,7 @@ export default class MinimizeToTray { { label: 'Quit', click: function () { - self._app.quit(); + self._forceQuit = true; self._app.quit(); } } ])); @@ -70,7 +71,7 @@ export default class MinimizeToTray { { label: 'Quit', click: function () { - self._app.quit(); + self._forceQuit = true; self._app.quit(); } } ])); @@ -122,7 +123,22 @@ export default class MinimizeToTray { // listen for close event this._win.hide(); this.SetContextMenu(false); - }); + }); + electron.ipcMain.handle("update-store-mtt", (event, value) => { + this._store.general["close_behavior"] = value; + }) + this._win.on("close", (e :any) => { + if (this._forceQuit || this._store.general["close_behavior"] == '0' ) { + this._app.exit(); + } else if (this._store.general["close_behavior"] == '1') { + e.preventDefault(); + this._win.minimize(); + } else { + e.preventDefault(); + this._win.hide(); + this.SetContextMenu(false); + } + }); } /** diff --git a/src/renderer/index.js b/src/renderer/index.js index 2a2c5b3d..2b2aae72 100644 --- a/src/renderer/index.js +++ b/src/renderer/index.js @@ -3435,7 +3435,8 @@ const app = new Vue({ switch (app.cfg.general.close_behavior) { case 0: case '0': - ipcRenderer.send('close'); + // the minimizeToTray plugin will handle this + window.close(); break; case 1: case '1': diff --git a/src/renderer/views/pages/settings.ejs b/src/renderer/views/pages/settings.ejs index d5d5c0d8..3e84736c 100644 --- a/src/renderer/views/pages/settings.ejs +++ b/src/renderer/views/pages/settings.ejs @@ -546,10 +546,10 @@ {{$root.getLz("settings.option.experimental.closeButtonBehaviour")}}
- + + +
@@ -695,6 +695,9 @@ }, toggleUserInfo: function () { app.chrome.hideUserInfo = !app.cfg.visual.showuserinfo + }, + sendDataToMTT: function() { + window.ipcRenderer.invoke('update-store-mtt', app.cfg.general.close_behavior); } } })