diff --git a/src/main/main.ts b/src/main/main.ts index 5a6f793f4..6c3a2cef4 100644 --- a/src/main/main.ts +++ b/src/main/main.ts @@ -67,8 +67,8 @@ if (store.get('ignore_ssl')) { // From https://github.com/tutao/tutanota/commit/92c6ed27625fcf367f0fbcc755d83d7ff8fde94b if (isLinux() && !process.argv.some((a) => a.startsWith('--password-store='))) { - const paswordStore = store.get('password_store', 'gnome-libsecret') as string; - app.commandLine.appendSwitch('password-store', paswordStore); + const passwordStore = store.get('password_store', 'gnome-libsecret') as string; + app.commandLine.appendSwitch('password-store', passwordStore); } let mainWindow: BrowserWindow | null = null; @@ -210,7 +210,7 @@ const createTray = () => { const createWindow = async (first = true) => { if (isDevelopment) { - await installExtensions(); + await installExtensions().catch(console.log); } const nativeFrame = store.get('window_window_bar_style') === 'linux'; @@ -364,20 +364,6 @@ const createWindow = async (first = true) => { } }); - ipcMain.handle('open-item', async (_event, path: string) => { - return new Promise((resolve, reject) => { - access(path, constants.F_OK, (error) => { - if (error) { - reject(error); - return; - } - - shell.showItemInFolder(path); - resolve(); - }); - }); - }); - const globalMediaKeysEnabled = store.get('global_media_hotkeys', true) as boolean; if (globalMediaKeysEnabled) { @@ -487,7 +473,7 @@ const createWindow = async (first = true) => { const menuBuilder = new MenuBuilder(mainWindow); menuBuilder.buildMenu(); - // Open urls in the user's browser + // Open URLs in the user's browser mainWindow.webContents.setWindowOpenHandler((edata) => { shell.openExternal(edata.url); return { action: 'deny' }; @@ -670,3 +656,20 @@ if (!singleInstance) { }) .catch(console.log); } + +// Register 'open-item' handler globally, ensuring it is only registered once +if (!ipcMain.eventNames().includes('open-item')) { + ipcMain.handle('open-item', async (_event, path: string) => { + return new Promise((resolve, reject) => { + access(path, constants.F_OK, (error) => { + if (error) { + reject(error); + return; + } + + shell.showItemInFolder(path); + resolve(); + }); + }); + }); +}