فهرست منبع

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

Vanessa 2 سال پیش
والد
کامیت
35469884d4
1فایلهای تغییر یافته به همراه9 افزوده شده و 6 حذف شده
  1. 9 6
      app/src/protyle/wysiwyg/remove.ts

+ 9 - 6
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 {
 import {
     getContenteditableElement,
     getContenteditableElement,
     getLastBlock,
     getLastBlock,
@@ -119,18 +119,21 @@ const removeLi = (protyle: IProtyle, blockElement: Element, range: Range) => {
     }];
     }];
     const previousLastElement = listItemElement.previousElementSibling.lastElementChild;
     const previousLastElement = listItemElement.previousElementSibling.lastElementChild;
     if (listItemElement.previousElementSibling.getAttribute("fold") === "1") {
     if (listItemElement.previousElementSibling.getAttribute("fold") === "1") {
-        if (getContenteditableElement(blockElement).textContent.trim() === "") {
+        if (getContenteditableElement(blockElement).textContent.trim() === "" &&
+            blockElement.nextElementSibling.classList.contains("protyle-attr")) {
             doOperations.push({
             doOperations.push({
                 action: "delete",
                 action: "delete",
                 id: listItemId
                 id: listItemId
             });
             });
             undoOperations[0].data = listItemElement.outerHTML;
             undoOperations[0].data = listItemElement.outerHTML;
-            range.selectNodeContents(getContenteditableElement(listItemElement.previousElementSibling));
-            range.collapse(false);
+            setLastNodeRange(getContenteditableElement(listItemElement.previousElementSibling), range);
+            range.collapse(true);
             listItemElement.remove();
             listItemElement.remove();
         } else {
         } else {
-            range.selectNodeContents(getContenteditableElement(listItemElement.previousElementSibling));
-            range.collapse(false);
+            setLastNodeRange(getContenteditableElement(listItemElement.previousElementSibling), range);
+            range.collapse(true);
+            focusByRange(range);
+            blockElement.querySelector("wbr")?.remove();
             return;
             return;
         }
         }
     } else {
     } else {