Parcourir la source

:art: fix https://github.com/siyuan-note/siyuan/issues/5384

Vanessa il y a 3 ans
Parent
commit
bf8534e8ac
1 fichiers modifiés avec 26 ajouts et 7 suppressions
  1. 26 7
      app/src/protyle/wysiwyg/keydown.ts

+ 26 - 7
app/src/protyle/wysiwyg/keydown.ts

@@ -75,18 +75,37 @@ export const keydown = (protyle: IProtyle, editorElement: HTMLElement) => {
         } else if (!event.repeat) {
             hideElements(["toolbar"], protyle);
         }
-
-        if (event.isComposing) {
-            event.stopPropagation();
-            return;
-        }
-
         const range = getEditorRange(protyle.wysiwyg.element);
         const nodeElement = hasClosestBlock(range.startContainer);
         if (!nodeElement) {
             return;
         }
-
+        if (nodeElement.classList.contains("protyle-wysiwyg--select")) {
+            if (event.key.toLowerCase() === "a") {
+                event.stopPropagation();
+                event.preventDefault();
+                protyle.wysiwyg.element.blur();
+                // 阻止中文输入的残留
+                setTimeout(() => {
+                    insertEmptyBlock(protyle, "afterend");
+                }, 100);
+                nodeElement.classList.remove("protyle-wysiwyg--select");
+                return false;
+            } else if (event.key.toLowerCase() === "b") {
+                event.stopPropagation();
+                event.preventDefault();
+                protyle.wysiwyg.element.blur();
+                setTimeout(() => {
+                    insertEmptyBlock(protyle, "beforebegin");
+                }, 100);
+                nodeElement.classList.remove("protyle-wysiwyg--select");
+                return false;
+            }
+        }
+        if (event.isComposing) {
+            event.stopPropagation();
+            return;
+        }
         // https://github.com/siyuan-note/siyuan/issues/2261
         if (!isCtrl(event) && !event.shiftKey && !event.altKey) {
             if (event.code === "Slash") {