This commit is contained in:
parent
cc52aff0cb
commit
31c2f647e4
2 changed files with 20 additions and 10 deletions
|
@ -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 += "⌘";
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Add table
Reference in a new issue