diff --git a/electron.js b/electron.js index c0e63b5fd4..f85027bd8e 100644 --- a/electron.js +++ b/electron.js @@ -233,9 +233,14 @@ app.on('second-instance', (event, argv) => { if (mainWindow.isMinimized()) { mainWindow.restore(); }; - - mainWindow.show(); + if (!mainWindow.isVisible()) { + mainWindow.show(); + }; mainWindow.focus(); + // Ensure focus is properly stolen on macOS + if (is.macos) { + app.focus({ steal: true }); + }; }); app.on('before-quit', e => { @@ -260,6 +265,15 @@ app.on('open-url', (e, url) => { if (mainWindow) { Util.send(mainWindow, 'route', Util.getRouteFromUrl(url)); - mainWindow.show(); + if (mainWindow.isMinimized()) { + mainWindow.restore(); + }; + if (!mainWindow.isVisible()) { + mainWindow.show(); + }; + mainWindow.focus(); + if (is.macos) { + app.focus({ steal: true }); + }; }; });