diff --git a/index.js b/index.js index fdbe7e4f..9406757a 100644 --- a/index.js +++ b/index.js @@ -13,7 +13,7 @@ const { fileExists, injectCSS } = require("./plugins/utils"); const { isTesting } = require("./utils/testing"); const { setUpTray } = require("./tray"); const { setupSongInfo } = require("./providers/song-info"); -const { setupAppControls } = require("./providers/app-controls"); +const { setupAppControls, restart } = require("./providers/app-controls"); // Catch errors and log them unhandled({ @@ -435,13 +435,8 @@ function showUnresponsiveDialog(win, details) { cancelId: 0 }).then( result => { switch (result.response) { - case 1: //if relaunch - relaunch+exit - app.relaunch(); - case 2: - app.quit(); - break; - default: - break; + case 1: restart(); break; + case 2: app.quit(); break; } }); } diff --git a/menu.js b/menu.js index 13f87568..0f3448d3 100644 --- a/menu.js +++ b/menu.js @@ -3,6 +3,7 @@ const path = require("path"); const { app, Menu, dialog } = require("electron"); const is = require("electron-is"); +const { restart } = require("./providers/app-controls"); const { getAllPlugins } = require("./plugins/utils"); const config = require("./config"); @@ -279,10 +280,7 @@ const mainMenuTemplate = (win) => { }, { label: "Restart App", - click: () => { - app.relaunch(); - app.quit(); - }, + click: restart }, { role: "quit" }, ], diff --git a/preload.js b/preload.js index 7a4f08be..0e387f61 100644 --- a/preload.js +++ b/preload.js @@ -1,8 +1,7 @@ const path = require("path"); - +require("./providers/front-logger")(); const config = require("./config"); const { fileExists } = require("./plugins/utils"); -const setupFrontLogger = require("./providers/front-logger"); const setupSongInfo = require("./providers/song-info-front"); const { setupSongControls } = require("./providers/song-controls-front"); const { ipcRenderer } = require("electron"); @@ -48,9 +47,6 @@ document.addEventListener("DOMContentLoaded", () => { // inject song-controls setupSongControls(); - // inject front logger - setupFrontLogger(); - // Add action for reloading global.reload = () => ipcRenderer.send('reload'); diff --git a/providers/app-controls.js b/providers/app-controls.js index dc7403c6..d51b6901 100644 --- a/providers/app-controls.js +++ b/providers/app-controls.js @@ -14,6 +14,7 @@ module.exports.setupAppControls = () => { } function restart() { - app.relaunch(); - app.exit(); + app.relaunch({ execPath: process.env.PORTABLE_EXECUTABLE_FILE }); + // execPath will be undefined if not running portable app, resulting in default behavior + app.quit(); } diff --git a/tray.js b/tray.js index b89902ab..e2c8c9e3 100644 --- a/tray.js +++ b/tray.js @@ -2,6 +2,7 @@ const path = require("path"); const { Menu, nativeImage, Tray } = require("electron"); +const { restart } = require("./providers/app-controls"); const config = require("./config"); const getSongControls = require("./providers/song-controls"); @@ -58,12 +59,9 @@ module.exports.setUpTray = (app, win) => { }, { label: "Restart App", - click: () => { - app.relaunch(); - app.quit(); - }, + click: restart }, - { role: "quit" } + { role: "quit" } ]; const trayMenu = Menu.buildFromTemplate(template);