diff --git a/src/main/plugins/minimizeToTray.ts b/src/main/plugins/minimizeToTray.ts index 67bbc301..0fe8df35 100644 --- a/src/main/plugins/minimizeToTray.ts +++ b/src/main/plugins/minimizeToTray.ts @@ -119,10 +119,19 @@ export default class MinimizeToTray { } } }) - electron.ipcMain.on("minimizeTray", (event, value) => { - // listen for close event - this._win.hide(); - this.SetContextMenu(false); + electron.ipcMain.handle("update-store-mtt", (event, value) => { + this._store.general["close_behavior"] = value; + }) + electron.ipcMain.on("win-close", (event, value) => { + console.log("tray", this._store.general["close_behavior"] ) + if (this._forceQuit || this._store.general["close_behavior"] == '0' ) { + this._app.quit(); + } else if (this._store.general["close_behavior"] == '1') { + this._win.minimize(); + } else { + this._win.hide(); + this.SetContextMenu(false); + } }); this._win.on("close", (e :any) => { if (this._forceQuit || this._store.general["close_behavior"] == '0' ) { diff --git a/src/renderer/index.js b/src/renderer/index.js index 9628d04e..a58cd372 100644 --- a/src/renderer/index.js +++ b/src/renderer/index.js @@ -3533,22 +3533,8 @@ const app = new Vue({ } }, closeWindow(){ - switch (app.cfg.general.close_behavior) { - case 0: - case '0': - // the minimizeToTray plugin will handle this - window.close(); - break; - case 1: - case '1': - ipcRenderer.send('minimize'); - break; - case 2: - case '2': - ipcRenderer.send('minimizeTray'); - break; - - } + // window.close doesnt call the win "close" event for some reason + ipcRenderer.send('win-close'); } } diff --git a/src/renderer/views/pages/settings.ejs b/src/renderer/views/pages/settings.ejs index cb2f1180..b09cec62 100644 --- a/src/renderer/views/pages/settings.ejs +++ b/src/renderer/views/pages/settings.ejs @@ -762,7 +762,9 @@ app.chrome.hideUserInfo = !app.cfg.visual.showuserinfo }, sendDataToMTT: function () { - ipcRenderer.invoke('setStoreValue', 'general.close_behavior', app.cfg.general.close_behavior); + ipcRenderer.invoke('setStoreValue', 'general.close_behavior', app.cfg.general.close_behavior); + // setStoreValue does not change plugin store values somehow + ipcRenderer.invoke('update-store-mtt', app.cfg.general.close_behavior); } } })