From 933c5d66e9db9ed431fdbd71bb0e5dead370c447 Mon Sep 17 00:00:00 2001 From: sawka Date: Wed, 31 Jul 2024 19:59:21 -0700 Subject: [PATCH] Cmd-m magnify block --- emain/emain.ts | 9 +++++++++ frontend/app/block/block.tsx | 11 +++++++++++ 2 files changed, 20 insertions(+) diff --git a/emain/emain.ts b/emain/emain.ts index 4134899c..94e5887b 100644 --- a/emain/emain.ts +++ b/emain/emain.ts @@ -670,6 +670,14 @@ function makeAppMenu() { role: "togglefullscreen", }, ]; + const windowMenu: Electron.MenuItemConstructorOptions[] = [ + { role: "minimize", accelerator: "" }, + { role: "zoom" }, + { type: "separator" }, + { role: "front" }, + { type: "separator" }, + { role: "window" }, + ]; const menuTemplate: Electron.MenuItemConstructorOptions[] = [ { role: "appMenu", @@ -688,6 +696,7 @@ function makeAppMenu() { }, { role: "windowMenu", + submenu: windowMenu, }, ]; const menu = electron.Menu.buildFromTemplate(menuTemplate); diff --git a/frontend/app/block/block.tsx b/frontend/app/block/block.tsx index 180f195c..aee7bdba 100644 --- a/frontend/app/block/block.tsx +++ b/frontend/app/block/block.tsx @@ -20,6 +20,7 @@ import clsx from "clsx"; import * as jotai from "jotai"; import * as React from "react"; +import { adaptFromReactOrNativeKeyEvent, checkKeyPressed } from "@/util/keyutil"; import "./block.less"; export interface LayoutComponentModel { @@ -385,6 +386,15 @@ const BlockFrame_Default_Component = ({ layoutModel?.onMagnifyToggle(); } + function handleKeyDown(e: React.KeyboardEvent) { + const waveEvent = adaptFromReactOrNativeKeyEvent(e); + if (checkKeyPressed(waveEvent, "Cmd:m")) { + e.preventDefault(); + layoutModel?.onMagnifyToggle(); + return; + } + } + const innerStyle: React.CSSProperties = {}; if (!preview && customBg?.bg != null) { innerStyle.background = customBg.bg; @@ -410,6 +420,7 @@ const BlockFrame_Default_Component = ({ onFocusCapture={blockModel?.onFocusCapture} ref={blockModel?.blockRef} style={style} + onKeyDown={handleKeyDown} >