diff --git a/src/main/ipc.ts b/src/main/ipc.ts index 1dfb8e6..cf76c53 100644 --- a/src/main/ipc.ts +++ b/src/main/ipc.ts @@ -68,28 +68,32 @@ handle(IpcEvents.SHOW_ITEM_IN_FOLDER, (_, path) => { shell.showItemInFolder(path); }); +function getWindow(e, key?: string) { + const win = BrowserWindow.fromWebContents(e.sender) ?? mainWin; + if (!key) return win; + const popout = PopoutWindows.get(key!); + return popout ?? win; +} + handle(IpcEvents.FOCUS, () => { mainWin.show(); mainWin.setSkipTaskbar(false); }); handle(IpcEvents.CLOSE, (e, key?: string) => { - const popout = PopoutWindows.get(key!); - if (popout) return popout.close(); - - const win = BrowserWindow.fromWebContents(e.sender) ?? e.sender; - win.close(); + getWindow(e, key).close(); }); -handle(IpcEvents.MINIMIZE, e => { - mainWin.minimize(); +handle(IpcEvents.MINIMIZE, (e, key?: string) => { + getWindow(e, key).minimize(); }); -handle(IpcEvents.MAXIMIZE, e => { - if (mainWin.isMaximized()) { - mainWin.unmaximize(); +handle(IpcEvents.MAXIMIZE, (e, key?: string) => { + const win = getWindow(e, key); + if (win.isMaximized()) { + win.unmaximize(); } else { - mainWin.maximize(); + win.maximize(); } }); diff --git a/src/preload/VesktopNative.ts b/src/preload/VesktopNative.ts index 69884cd..ec993c1 100644 --- a/src/preload/VesktopNative.ts +++ b/src/preload/VesktopNative.ts @@ -55,8 +55,8 @@ export const VesktopNative = { win: { focus: () => invoke(IpcEvents.FOCUS), close: (key?: string) => invoke(IpcEvents.CLOSE, key), - minimize: () => invoke(IpcEvents.MINIMIZE), - maximize: () => invoke(IpcEvents.MAXIMIZE) + minimize: (key?: string) => invoke(IpcEvents.MINIMIZE, key), + maximize: (key?: string) => invoke(IpcEvents.MAXIMIZE, key) }, capturer: { getLargeThumbnail: (id: string) => invoke(IpcEvents.CAPTURER_GET_LARGE_THUMBNAIL, id)