From f7f7170a6c69f26ec3af4b312d806bbdd133e934 Mon Sep 17 00:00:00 2001 From: Sylvia Crowe Date: Thu, 23 Jan 2025 12:41:46 -0800 Subject: [PATCH] feat: add new window item to macos dock --- emain/emain.ts | 3 ++- emain/menu.ts | 17 ++++++++++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/emain/emain.ts b/emain/emain.ts index 9de81fcb56..90425ebb91 100644 --- a/emain/emain.ts +++ b/emain/emain.ts @@ -45,7 +45,7 @@ import { import { ElectronWshClient, initElectronWshClient } from "./emain-wsh"; import { getLaunchSettings } from "./launchsettings"; import { log } from "./log"; -import { makeAppMenu } from "./menu"; +import { makeAppMenu, makeDockTaskbar } from "./menu"; import { callWithOriginalXdgCurrentDesktopAsync, checkIfRunningUnderARM64Translation, @@ -611,6 +611,7 @@ async function appMain() { setTimeout(runActiveTimer, 5000); // start active timer, wait 5s just to be safe makeAppMenu(); + makeDockTaskbar(); await configureAutoUpdater(); setGlobalIsStarting(false); if (fullConfig?.settings?.["window:maxtabcachesize"] != null) { diff --git a/emain/menu.ts b/emain/menu.ts index a500e6f455..3fdfbc2748 100644 --- a/emain/menu.ts +++ b/emain/menu.ts @@ -360,4 +360,19 @@ electron.ipcMain.on("contextmenu-show", (event, workspaceId: string, menuDefArr? event.returnValue = true; }); -export { getAppMenu }; +const dockMenu = electron.Menu.buildFromTemplate([ + { + label: "New Window", + click() { + fireAndForget(createNewWaveWindow); + }, + }, +]); + +function makeDockTaskbar() { + if (unamePlatform == "darwin") { + electron.app.dock.setMenu(dockMenu); + } +} + +export { getAppMenu, makeDockTaskbar };