|
@@ -4,7 +4,7 @@ import { app, protocol, BrowserWindow, Menu, globalShortcut } from 'electron'
|
|
|
import { createProtocol } from 'vue-cli-plugin-electron-builder/lib'
|
|
|
import installExtension, { VUEJS_DEVTOOLS } from 'electron-devtools-installer'
|
|
|
const isDevelopment = process.env.NODE_ENV !== 'production'
|
|
|
-
|
|
|
+let mainWindow
|
|
|
|
|
|
protocol.registerSchemesAsPrivileged([
|
|
|
{ scheme: 'app', privileges: { secure: true, standard: true } }
|
|
@@ -30,7 +30,7 @@ async function createWindow() {
|
|
|
icon: `${__static}/app.ico`
|
|
|
}
|
|
|
})
|
|
|
-
|
|
|
+ mainWindow = win
|
|
|
if (process.env.WEBPACK_DEV_SERVER_URL) {
|
|
|
|
|
|
|
|
@@ -60,35 +60,46 @@ async function createWindow() {
|
|
|
Menu.setApplicationMenu(null)
|
|
|
}
|
|
|
|
|
|
-
|
|
|
-app.on('window-all-closed', () => {
|
|
|
-
|
|
|
-
|
|
|
- if (process.platform !== 'darwin') {
|
|
|
- app.quit()
|
|
|
- }
|
|
|
-})
|
|
|
-
|
|
|
-app.on('activate', () => {
|
|
|
-
|
|
|
-
|
|
|
- if (BrowserWindow.getAllWindows().length === 0) createWindow()
|
|
|
-})
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-app.on('ready', async () => {
|
|
|
- if (isDevelopment && !process.env.IS_TEST) {
|
|
|
-
|
|
|
- try {
|
|
|
- await installExtension(VUEJS_DEVTOOLS)
|
|
|
- } catch (e) {
|
|
|
- console.error('Vue Devtools failed to install:', e.toString())
|
|
|
+const gotTheLock = app.requestSingleInstanceLock()
|
|
|
+if (!gotTheLock) {
|
|
|
+ app.quit()
|
|
|
+} else {
|
|
|
+ app.on('second-instance', (event) => {
|
|
|
+ if (mainWindow) {
|
|
|
+ if (mainWindow.isMinimized()) mainWindow.restore()
|
|
|
+ mainWindow.focus()
|
|
|
}
|
|
|
- }
|
|
|
- createWindow()
|
|
|
-})
|
|
|
+ })
|
|
|
+
|
|
|
+ app.on('window-all-closed', () => {
|
|
|
+
|
|
|
+
|
|
|
+ if (process.platform !== 'darwin') {
|
|
|
+ app.quit()
|
|
|
+ }
|
|
|
+ })
|
|
|
+
|
|
|
+ app.on('activate', () => {
|
|
|
+
|
|
|
+
|
|
|
+ if (BrowserWindow.getAllWindows().length === 0) createWindow()
|
|
|
+ })
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ app.on('ready', async () => {
|
|
|
+ if (isDevelopment && !process.env.IS_TEST) {
|
|
|
+
|
|
|
+ try {
|
|
|
+ await installExtension(VUEJS_DEVTOOLS)
|
|
|
+ } catch (e) {
|
|
|
+ console.error('Vue Devtools failed to install:', e.toString())
|
|
|
+ }
|
|
|
+ }
|
|
|
+ createWindow()
|
|
|
+ })
|
|
|
+}
|
|
|
|
|
|
|
|
|
if (isDevelopment) {
|