From 0e082736162fba9aeb2e00d0526c4beed098374b Mon Sep 17 00:00:00 2001 From: Vanessa Date: Thu, 9 May 2024 09:07:13 +0800 Subject: [PATCH] :art: https://github.com/siyuan-note/siyuan/issues/11316 --- app/src/protyle/wysiwyg/index.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/app/src/protyle/wysiwyg/index.ts b/app/src/protyle/wysiwyg/index.ts index 743274c58..168d04f2c 100644 --- a/app/src/protyle/wysiwyg/index.ts +++ b/app/src/protyle/wysiwyg/index.ts @@ -12,7 +12,7 @@ import { focusByWbr, focusSideBlock, getEditorRange, - getSelectionOffset, + getSelectionOffset, setFirstNodeRange, setLastNodeRange, } from "../util/selection"; import {Constants} from "../../constants"; @@ -1254,7 +1254,13 @@ export class WYSIWYG { endBlockElement = hasClosestBlock(range.endContainer); } if (startBlockElement && endBlockElement && !endBlockElement.isSameNode(startBlockElement)) { - range.collapse(true); + if (range.startContainer.nodeType === 1 && (range.startContainer as HTMLElement).tagName === "DIV" && (range.startContainer as HTMLElement).classList.contains("protyle-attr")) { + setFirstNodeRange(getContenteditableElement(endBlockElement), range); + } else if (range.endOffset === 0 && range.endContainer.nodeType === 1 && (range.endContainer as HTMLElement).tagName === "DIV") { + setLastNodeRange(getContenteditableElement(startBlockElement), range, false); + } else { + range.collapse(true); + } } } };