This commit is contained in:
Vanessa 2022-09-09 11:17:19 +08:00
parent cc52aff0cb
commit 31c2f647e4
2 changed files with 20 additions and 10 deletions

View file

@ -202,10 +202,11 @@ export const keymap = {
if (event.ctrlKey && !event.metaKey && isMac()) {
keymapStr += "⌃";
}
if (event.altKey) {
keymapStr += "⌥";
}
if (event.shiftKey) {
keymapStr += "⇧";
} else if (event.altKey) {
keymapStr += "⌥";
}
if (isCtrl(event)) {
keymapStr += "⌘";

View file

@ -52,15 +52,24 @@ export const matchHotKey = (hotKey: string, event: KeyboardEvent) => {
}
if (hotKey.startsWith("⌥")) {
let keyCode = hotKeys.length === 3 ? hotKeys[2] : hotKeys[1];
if (hotKeys.length === 4) {
keyCode = hotKeys[3];
}
const isMatchKey = (/^[0-9]$/.test(keyCode) ? (event.code === "Digit" + keyCode || event.code === "Numpad" + keyCode) : event.code === "Key" + keyCode) ||
event.code === keyCode ||
(event.code === "Period" && keyCode === ".") ||
(event.code === "BracketLeft" && keyCode === "[") || (event.code === "BracketRight" && keyCode === "]");
// 是否匹配 ⌥[] / ⌥⌘[]
const keyCode = hotKeys.length === 3 ? hotKeys[2] : hotKeys[1];
if ((hotKeys.length === 3 ? isCtrl(event) : !isCtrl(event)) && event.altKey && !event.shiftKey &&
(
(/^[0-9]$/.test(keyCode) ? (event.code === "Digit" + keyCode || event.code === "Numpad" + keyCode) : event.code === "Key" + keyCode) ||
event.code === keyCode ||
(event.code === "Period" && keyCode === ".") ||
(event.code === "BracketLeft" && keyCode === "[") || (event.code === "BracketRight" && keyCode === "]")
)) {
if ((hotKeys.length === 3 ? isCtrl(event) : !isCtrl(event)) && event.altKey && !event.shiftKey && isMatchKey) {
return true;
}
// ⌥⇧⌘[]
if (hotKey.startsWith("⌥⇧⌘") && hotKeys.length === 4 && event.altKey && event.shiftKey && isCtrl(event) && isMatchKey) {
return true;
}
// ⌥⇧[]
if (hotKey.startsWith("⌥⇧") && hotKeys.length === 3 && event.altKey && event.shiftKey && !isCtrl(event) && isMatchKey) {
return true;
}
return false;