diff --git a/src/main/ipc-handlers/application.ts b/src/main/ipc-handlers/application.ts index 8b8999ee..88d54d59 100644 --- a/src/main/ipc-handlers/application.ts +++ b/src/main/ipc-handlers/application.ts @@ -1,4 +1,4 @@ -import { app, ipcMain, dialog, BrowserWindow } from 'electron'; +import { app, ipcMain, dialog } from 'electron'; import { ShortcutRegister } from '../libs/ShortcutRegister'; export default () => { @@ -15,26 +15,22 @@ export default () => { }); ipcMain.handle('resotre-default-shortcuts', () => { - const mainWindow = BrowserWindow.getAllWindows()[0]; - const shortCutRegister = ShortcutRegister.getInstance({ mainWindow }); + const shortCutRegister = ShortcutRegister.getInstance(); shortCutRegister.restoreDefaults(); }); ipcMain.handle('reload-shortcuts', () => { - const mainWindow = BrowserWindow.getAllWindows()[0]; - const shortCutRegister = ShortcutRegister.getInstance({ mainWindow }); + const shortCutRegister = ShortcutRegister.getInstance(); shortCutRegister.reload(); }); ipcMain.handle('update-shortcuts', (event, shortcuts) => { - const mainWindow = BrowserWindow.getAllWindows()[0]; - const shortCutRegister = ShortcutRegister.getInstance({ mainWindow }); + const shortCutRegister = ShortcutRegister.getInstance(); shortCutRegister.updateShortcuts(shortcuts); }); ipcMain.handle('unregister-shortcuts', () => { - const mainWindow = BrowserWindow.getAllWindows()[0]; - const shortCutRegister = ShortcutRegister.getInstance({ mainWindow }); + const shortCutRegister = ShortcutRegister.getInstance(); shortCutRegister.unregister(); }); }; diff --git a/src/main/libs/ShortcutRegister.ts b/src/main/libs/ShortcutRegister.ts index b011a2c7..6a111cc5 100644 --- a/src/main/libs/ShortcutRegister.ts +++ b/src/main/libs/ShortcutRegister.ts @@ -26,9 +26,14 @@ export class ShortcutRegister { this.shortcuts = shortcutsStore.get('shortcuts', defaultShortcuts) as ShortcutRecord[]; } - public static getInstance (args: { mainWindow: BrowserWindow; menuTemplate: OsMenu; mode: ShortcutMode }) { - if (!ShortcutRegister._instance) - ShortcutRegister._instance = new ShortcutRegister(args); + public static getInstance (args?: { mainWindow?: BrowserWindow; menuTemplate?: OsMenu; mode?: ShortcutMode }) { + if (!ShortcutRegister._instance && args.menuTemplate !== undefined && args.mode !== undefined) { + ShortcutRegister._instance = new ShortcutRegister({ + mainWindow: args.mainWindow, + menuTemplate: args.menuTemplate, + mode: args.mode + }); + } return ShortcutRegister._instance; }