From 25f54813fb4b714dd1a282c9f6d7bd232481d06d Mon Sep 17 00:00:00 2001 From: wj-xiao Date: Wed, 14 Jan 2026 16:08:52 +0800 Subject: [PATCH] fix(desktop): compatible with macOS's Command key combinations --- .../src/renderer/src/components/keyboard/index.tsx | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/desktop/src/renderer/src/components/keyboard/index.tsx b/desktop/src/renderer/src/components/keyboard/index.tsx index 8096d2c..6fa39b7 100644 --- a/desktop/src/renderer/src/components/keyboard/index.tsx +++ b/desktop/src/renderer/src/components/keyboard/index.tsx @@ -4,6 +4,7 @@ import { useAtomValue } from 'jotai' import { IpcEvents } from '@common/ipc-events' import { isKeyboardEnableAtom } from '@renderer/jotai/keyboard' import { KeyboardReport } from '@renderer/libs/keyboard/keyboard' +import { isModifier } from "@renderer/libs/keyboard/keymap" export const Keyboard = (): ReactElement => { const isKeyboardEnabled = useAtomValue(isKeyboardEnableAtom) @@ -57,6 +58,16 @@ export const Keyboard = (): ReactElement => { event.stopPropagation() const code = event.code + + if (code === 'MetaLeft' || code === 'MetaRight') { + pressedKeys.current.forEach((pressedCode) => { + if (!isModifier(pressedCode)) { + handleKeyEvent({ type: 'keyup', code: pressedCode }); + pressedKeys.current.delete(pressedCode); + } + }); + } + pressedKeys.current.delete(code) await handleKeyEvent({ type: 'keyup', code }) }