diff --git a/app/src/config/keymap.ts b/app/src/config/keymap.ts index a8698d8d6..ee94fe492 100644 --- a/app/src/config/keymap.ts +++ b/app/src/config/keymap.ts @@ -342,6 +342,8 @@ export const keymap = { } else { keymapStr += Constants.KEYCODE[event.keyCode][0]; } + } else if (["/", ".", "+", "-", "*"].includes(event.key)) { + keymapStr += event.key; } else if (event.code.startsWith("Digit") || event.code.startsWith("Key") || event.code.startsWith("Numpad")) { // 新版 Electron 可以支持 Alt["I", "E", "N", "U"],故移除原有判断 keymapStr += event.code.substring(event.code.length - 1).toUpperCase(); diff --git a/app/src/protyle/util/hotKey.ts b/app/src/protyle/util/hotKey.ts index 9f50ff282..c00b9a079 100644 --- a/app/src/protyle/util/hotKey.ts +++ b/app/src/protyle/util/hotKey.ts @@ -48,7 +48,7 @@ export const matchHotKey = (hotKey: string, event: KeyboardEvent) => { if (hotKey.startsWith("⇧") && hotKeys.length === 2) { if (!event.ctrlKey && !isCtrl(event) && !event.altKey && event.shiftKey) { if (event.code.startsWith("Digit") || event.code.startsWith("Numpad")) { - if (hotKeys[1] === event.code.slice(-1)) { + if (hotKeys[1] === event.code.slice(-1) || event.key === hotKeys[1]) { return true; } } else if (event.key === hotKeys[1]) { @@ -65,7 +65,8 @@ export const matchHotKey = (hotKey: string, event: KeyboardEvent) => { } let isMatchKey = (/^[0-9]$/.test(keyCode) ? (event.code === "Digit" + keyCode || event.code === "Numpad" + keyCode) : event.code === "Key" + keyCode) || - event.code === keyCode; + event.code === keyCode || + event.key === keyCode; // 小键盘上的 /*-+. if (Constants.KEYCODE[event.keyCode]) { if (event.shiftKey) { isMatchKey = Constants.KEYCODE[event.keyCode][1] === keyCode;