From 35469884d49b639de46fba30b3664ebff1b7e449 Mon Sep 17 00:00:00 2001 From: Vanessa Date: Fri, 10 Feb 2023 11:18:48 +0800 Subject: [PATCH] :art: fix https://github.com/siyuan-note/siyuan/issues/7317 --- app/src/protyle/wysiwyg/remove.ts | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/app/src/protyle/wysiwyg/remove.ts b/app/src/protyle/wysiwyg/remove.ts index 8e52cd8d7..3e23cda1d 100644 --- a/app/src/protyle/wysiwyg/remove.ts +++ b/app/src/protyle/wysiwyg/remove.ts @@ -1,4 +1,4 @@ -import {focusBlock, focusByWbr} from "../util/selection"; +import {focusBlock, focusByRange, focusByWbr, setLastNodeRange} from "../util/selection"; import { getContenteditableElement, getLastBlock, @@ -119,18 +119,21 @@ const removeLi = (protyle: IProtyle, blockElement: Element, range: Range) => { }]; const previousLastElement = listItemElement.previousElementSibling.lastElementChild; if (listItemElement.previousElementSibling.getAttribute("fold") === "1") { - if (getContenteditableElement(blockElement).textContent.trim() === "") { + if (getContenteditableElement(blockElement).textContent.trim() === "" && + blockElement.nextElementSibling.classList.contains("protyle-attr")) { doOperations.push({ action: "delete", id: listItemId }); undoOperations[0].data = listItemElement.outerHTML; - range.selectNodeContents(getContenteditableElement(listItemElement.previousElementSibling)); - range.collapse(false); + setLastNodeRange(getContenteditableElement(listItemElement.previousElementSibling), range); + range.collapse(true); listItemElement.remove(); } else { - range.selectNodeContents(getContenteditableElement(listItemElement.previousElementSibling)); - range.collapse(false); + setLastNodeRange(getContenteditableElement(listItemElement.previousElementSibling), range); + range.collapse(true); + focusByRange(range); + blockElement.querySelector("wbr")?.remove(); return; } } else {