From 21dd205fde2667efdbd9574d7583da3360e07620 Mon Sep 17 00:00:00 2001 From: Vanessa Date: Sun, 19 Nov 2023 15:13:58 +0800 Subject: [PATCH] :art: fix https://github.com/siyuan-note/siyuan/issues/9690 --- app/src/protyle/wysiwyg/keydown.ts | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/app/src/protyle/wysiwyg/keydown.ts b/app/src/protyle/wysiwyg/keydown.ts index a23e5f53e..22d27358d 100644 --- a/app/src/protyle/wysiwyg/keydown.ts +++ b/app/src/protyle/wysiwyg/keydown.ts @@ -6,7 +6,7 @@ import { focusByWbr, getEditorRange, getSelectionOffset, getSelectionPosition, - selectAll, + selectAll, setFirstNodeRange, } from "../util/selection"; import { hasClosestBlock, @@ -860,6 +860,23 @@ export const keydown = (protyle: IProtyle, editorElement: HTMLElement) => { event.preventDefault(); return; } + // https://github.com/siyuan-note/siyuan/issues/9690 + const inlineElement = hasClosestByMatchTag(range.startContainer, "SPAN") + if (position.start === 2 && inlineElement && + getSelectionOffset(inlineElement, protyle.wysiwyg.element, range).start === 1 && + inlineElement.textContent.startsWith(Constants.ZWSP)) { + focusBlock(nodeElement); + event.stopPropagation(); + event.preventDefault(); + return; + } + if (position.start === 1 && !inlineElement && editElement.textContent.startsWith(Constants.ZWSP)) { + setFirstNodeRange(editElement, range); + removeBlock(protyle, nodeElement, range); + event.stopPropagation(); + event.preventDefault(); + return; + } } } else if (nodeElement.classList.contains("code-block") && getContenteditableElement(nodeElement).textContent === "\n") { // 空代码块全选删除异常 https://github.com/siyuan-note/siyuan/issues/6706