This commit is contained in:
parent
8f6336d848
commit
e0cc6ef05b
3 changed files with 11 additions and 15 deletions
|
@ -657,12 +657,6 @@ const fileTreeKeydown = (app: App, event: KeyboardEvent) => {
|
|||
hasClosestByClassName(target, "protyle", true)) {
|
||||
return false;
|
||||
}
|
||||
if (!window.siyuan.menus.menu.element.classList.contains("fn__none") &&
|
||||
(event.code.startsWith("Arrow") || event.code === "Enter") &&
|
||||
!event.altKey && !event.shiftKey && isNotCtrl(event)) {
|
||||
event.preventDefault();
|
||||
return true;
|
||||
}
|
||||
if (event.shiftKey) {
|
||||
if (event.key === "ArrowUp") {
|
||||
const startEndElement = getStartEndElement(liElements);
|
||||
|
|
|
@ -2,6 +2,7 @@ import {getEventName, updateHotkeyTip} from "../protyle/util/compatibility";
|
|||
import {setPosition} from "../util/setPosition";
|
||||
import {hasClosestByClassName} from "../protyle/util/hasClosest";
|
||||
import {isMobile} from "../util/functions";
|
||||
import {Constants} from "../constants";
|
||||
|
||||
export class Menu {
|
||||
public element: HTMLElement;
|
||||
|
@ -255,18 +256,19 @@ export const bindMenuKeydown = (event: KeyboardEvent) => {
|
|||
if (window.siyuan.menus.menu.element.contains(target) && (target.tagName === "INPUT" || target.tagName === "TEXTAREA")) {
|
||||
return false;
|
||||
}
|
||||
if (event.code === "ArrowDown" || event.code === "ArrowUp") {
|
||||
const eventCode = Constants.KEYCODELIST[event.keyCode]
|
||||
if (eventCode === "↓" || eventCode === "↑") {
|
||||
const currentElement = window.siyuan.menus.menu.element.querySelector(".b3-menu__item--current");
|
||||
let actionMenuElement;
|
||||
if (!currentElement) {
|
||||
if (event.code === "ArrowUp") {
|
||||
if (eventCode === "↑") {
|
||||
actionMenuElement = getActionMenu(window.siyuan.menus.menu.element.lastElementChild.lastElementChild, false);
|
||||
} else {
|
||||
actionMenuElement = getActionMenu(window.siyuan.menus.menu.element.lastElementChild.firstElementChild, true);
|
||||
}
|
||||
} else {
|
||||
currentElement.classList.remove("b3-menu__item--current", "b3-menu__item--show");
|
||||
if (event.code === "ArrowUp") {
|
||||
if (eventCode === "↑") {
|
||||
actionMenuElement = getActionMenu(currentElement.previousElementSibling, false);
|
||||
if (!actionMenuElement) {
|
||||
actionMenuElement = getActionMenu(currentElement.parentElement.lastElementChild, false);
|
||||
|
@ -288,7 +290,7 @@ export const bindMenuKeydown = (event: KeyboardEvent) => {
|
|||
}
|
||||
}
|
||||
return true;
|
||||
} else if (event.code === "ArrowRight") {
|
||||
} else if (eventCode === "→") {
|
||||
const currentElement = window.siyuan.menus.menu.element.querySelector(".b3-menu__item--current");
|
||||
if (!currentElement) {
|
||||
return true;
|
||||
|
@ -306,7 +308,7 @@ export const bindMenuKeydown = (event: KeyboardEvent) => {
|
|||
}
|
||||
window.siyuan.menus.menu.showSubMenu(subMenuElement);
|
||||
return true;
|
||||
} else if (event.code === "ArrowLeft") {
|
||||
} else if (eventCode === "←") {
|
||||
const currentElement = window.siyuan.menus.menu.element.querySelector(".b3-menu__submenu .b3-menu__item--current");
|
||||
if (!currentElement) {
|
||||
return true;
|
||||
|
@ -318,7 +320,7 @@ export const bindMenuKeydown = (event: KeyboardEvent) => {
|
|||
currentElement.classList.remove("b3-menu__item--current");
|
||||
}
|
||||
return true;
|
||||
} else if (event.code === "Enter") {
|
||||
} else if (eventCode === "↩") {
|
||||
const currentElement = window.siyuan.menus.menu.element.querySelector(".b3-menu__item--current");
|
||||
if (!currentElement) {
|
||||
return false;
|
||||
|
|
|
@ -147,9 +147,9 @@ export const keydown = (protyle: IProtyle, editorElement: HTMLElement) => {
|
|||
}
|
||||
// https://github.com/siyuan-note/siyuan/issues/2261
|
||||
if (isNotCtrl(event) && !event.shiftKey && !event.altKey) {
|
||||
if (Constants.KEYCODELIST[event.keyCode] === "Slash") {
|
||||
if (Constants.KEYCODELIST[event.keyCode] === "/") {
|
||||
protyle.hint.enableSlash = true;
|
||||
} else if (Constants.KEYCODELIST[event.keyCode] === "Backslash" ) {
|
||||
} else if (Constants.KEYCODELIST[event.keyCode] === "\\") {
|
||||
protyle.hint.enableSlash = false;
|
||||
hideElements(["hint"], protyle);
|
||||
// 此处不能返回,否则无法撤销 https://github.com/siyuan-note/siyuan/issues/2795
|
||||
|
@ -169,7 +169,7 @@ export const keydown = (protyle: IProtyle, editorElement: HTMLElement) => {
|
|||
}
|
||||
|
||||
if (!window.siyuan.menus.menu.element.classList.contains("fn__none") &&
|
||||
(event.code.startsWith("Arrow") || event.code === "Enter") &&
|
||||
(["←", "↑", "→", "↓"].includes(Constants.KEYCODELIST[event.keyCode]) || Constants.KEYCODELIST[event.keyCode] === "↩") &&
|
||||
!event.altKey && !event.shiftKey && isNotCtrl(event)) {
|
||||
event.preventDefault();
|
||||
return;
|
||||
|
|
Loading…
Add table
Reference in a new issue