This commit is contained in:
Vanessa 2023-11-12 12:28:20 +08:00
parent 2c71478d83
commit 4f263b31cc
19 changed files with 110 additions and 88 deletions

View file

@ -1,4 +1,4 @@
import {isCtrl, isMac, updateHotkeyTip, writeText} from "../../protyle/util/compatibility";
import {isMac, isNotCtrl, isOnlyMeta, updateHotkeyTip, writeText} from "../../protyle/util/compatibility";
import {matchHotKey} from "../../protyle/util/hotKey";
import {openSearch} from "../../search/spread";
import {
@ -439,7 +439,7 @@ const fileTreeKeydown = (app: App, event: KeyboardEvent) => {
const liElements = Array.from(files.element.querySelectorAll(".b3-list-item--focus"));
if (liElements.length === 0) {
if (event.key.startsWith("Arrow") && !isCtrl(event)) {
if (event.key.startsWith("Arrow") && isNotCtrl(event)) {
const liElement = files.element.querySelector(".b3-list-item");
if (liElement) {
liElement.classList.add("b3-list-item--focus");
@ -572,7 +572,7 @@ const fileTreeKeydown = (app: App, event: KeyboardEvent) => {
}
if (!window.siyuan.menus.menu.element.classList.contains("fn__none") &&
(event.code.startsWith("Arrow") || event.code === "Enter") &&
!event.altKey && !event.shiftKey && !isCtrl(event)) {
!event.altKey && !event.shiftKey && isNotCtrl(event)) {
event.preventDefault();
return true;
}
@ -629,7 +629,7 @@ const fileTreeKeydown = (app: App, event: KeyboardEvent) => {
}
}
return;
} else if (!isCtrl(event)) {
} else if (isNotCtrl(event)) {
files.element.querySelector('[select-end="true"]')?.removeAttribute("select-end");
files.element.querySelector('[select-start="true"]')?.removeAttribute("select-start");
if ((event.key === "ArrowRight" && !liElements[0].querySelector(".b3-list-item__arrow--open") && !liElements[0].querySelector(".b3-list-item__toggle").classList.contains("fn__hidden")) ||
@ -957,7 +957,7 @@ export const windowKeyDown = (app: App, event: KeyboardEvent) => {
return;
}
const target = event.target as HTMLElement;
if (!event.ctrlKey && !event.metaKey && !event.shiftKey && !event.altKey &&
if (isNotCtrl(event) && !event.shiftKey && !event.altKey &&
!["INPUT", "TEXTAREA"].includes(target.tagName) &&
["0", "1", "2", "3", "4", "j", "k", "l", ";", "s", " ", "p"].includes(event.key.toLowerCase())) {
let cardElement: Element;
@ -978,15 +978,15 @@ export const windowKeyDown = (app: App, event: KeyboardEvent) => {
}
// 仅处理以下快捷键操作
if (!event.ctrlKey && !isCtrl(event) && event.key !== "Escape" && !event.shiftKey && !event.altKey &&
if (isNotCtrl(event) && event.key !== "Escape" && !event.shiftKey && !event.altKey &&
Constants.KEYCODELIST[event.keyCode] !== "PageUp" &&
Constants.KEYCODELIST[event.keyCode] !== "PageDown" &&
!/^F\d{1,2}$/.test(event.key) && event.key.indexOf("Arrow") === -1 && event.key !== "Enter" && event.key !== "Backspace" && event.key !== "Delete") {
return;
}
if (!event.altKey && !event.shiftKey && isCtrl(event)) {
if (event.key === "Meta" || event.key === "Control" || event.ctrlKey || event.metaKey) {
if (!event.altKey && !event.shiftKey && isOnlyMeta(event)) {
if ((isMac() ? event.key === "Meta" : event.key === "Control") || isOnlyMeta(event)) {
window.siyuan.ctrlIsPressed = true;
if ((event.key === "Meta" || event.key === "Control") &&
window.siyuan.config.editor.floatWindowMode === 1 && !event.repeat) {
@ -997,7 +997,7 @@ export const windowKeyDown = (app: App, event: KeyboardEvent) => {
}
}
if (!event.altKey && event.shiftKey && !isCtrl(event)) {
if (!event.altKey && event.shiftKey && isNotCtrl(event)) {
if (event.key === "Shift") {
window.siyuan.shiftIsPressed = true;
if (!event.repeat) {
@ -1008,7 +1008,7 @@ export const windowKeyDown = (app: App, event: KeyboardEvent) => {
}
}
if (event.altKey && !event.shiftKey && !isCtrl(event)) {
if (event.altKey && !event.shiftKey && isNotCtrl(event)) {
if (event.key === "Alt") {
window.siyuan.altIsPressed = true;
} else {
@ -1016,6 +1016,7 @@ export const windowKeyDown = (app: App, event: KeyboardEvent) => {
}
}
// mac 中只能使用 ⌃
if (switchDialog && event.ctrlKey && !event.metaKey && event.key.startsWith("Arrow")) {
dialogArrow(app, switchDialog.element, event);
return;
@ -1100,7 +1101,7 @@ export const windowKeyDown = (app: App, event: KeyboardEvent) => {
return;
}
if (!event.ctrlKey && !event.metaKey && !event.shiftKey && !event.altKey &&
if (isNotCtrl(event) && !event.shiftKey && !event.altKey &&
(event.key.startsWith("Arrow") || event.key === "Enter")) {
const openRecentDocsDialog = window.siyuan.dialogs.find(item => {
if (item.element.getAttribute("data-key") === window.siyuan.config.keymap.general.recentDocs.custom) {