diff --git a/src/main/menu.ts b/src/main/menu.ts index 2cddbb1b01..57c6ccab5e 100644 --- a/src/main/menu.ts +++ b/src/main/menu.ts @@ -10,6 +10,7 @@ import { extensionsURL } from "../renderer/components/+extensions/extensions.rou import { menuRegistry } from "../extensions/registries/menu-registry"; import logger from "./logger"; import { exitApp } from "./exit-app"; +import { broadcastMessage } from "../common/ipc"; export type MenuTopId = "mac" | "file" | "edit" | "view" | "help"; @@ -173,6 +174,14 @@ export function buildMenu(windowManager: WindowManager) { const viewMenu: MenuItemConstructorOptions = { label: "View", submenu: [ + { + label: "Command Palette...", + accelerator: "Shift+CmdOrCtrl+P", + click() { + broadcastMessage("command-palette:open"); + } + }, + { type: "separator" }, { label: "Back", accelerator: "CmdOrCtrl+[", diff --git a/src/renderer/components/command-palette/command-dialog.tsx b/src/renderer/components/command-palette/command-dialog.tsx index 55605f9f8b..4adbf32d8b 100644 --- a/src/renderer/components/command-palette/command-dialog.tsx +++ b/src/renderer/components/command-palette/command-dialog.tsx @@ -6,9 +6,9 @@ import { observer } from "mobx-react"; import React from "react"; import { commandRegistry } from "../../../extensions/registries/command-registry"; import { Dialog } from "../dialog"; -import { isMac } from "../../../common/vars"; import { clusterStore } from "../../../common/cluster-store"; import { workspaceStore } from "../../../common/workspace-store"; +import { subscribeToBroadcast } from "../../../common/ipc"; @observer export class CommandDialog extends React.Component { @@ -23,22 +23,9 @@ export class CommandDialog extends React.Component { } @action - private shortcutHandler(event: KeyboardEvent) { - console.log(event); - - if (isMac) { - if (event.shiftKey && event.metaKey && event.key === "p") { - this.visible = true; - this.menuIsOpen = true; - event.stopPropagation(); - } - } else { - if (event.shiftKey && event.ctrlKey && event.key === "p") { - this.visible = true; - this.menuIsOpen = true; - event.stopPropagation(); - } - } + private shortcutHandler() { + this.visible = true; + this.menuIsOpen = true; } private closeDialog() { @@ -50,11 +37,7 @@ export class CommandDialog extends React.Component { componentDidMount() { window.addEventListener("keyup", (e) => this.escHandler(e), true); - window.addEventListener("keydown", (e) => this.shortcutHandler(e), true); - } - - componentWillUnmount() { - window.removeEventListener("keyup", this.escHandler); + subscribeToBroadcast("command-palette:open", () => this.shortcutHandler()); } @computed get options() { @@ -66,8 +49,6 @@ export class CommandDialog extends React.Component { private onChange(value: string) { const command = commandRegistry.getItems().find((cmd) => cmd.id === value); - console.log(value, command); - if (!command) { return; } @@ -89,7 +70,7 @@ export class CommandDialog extends React.Component {