Browse Source

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

Vanessa 1 year ago
parent
commit
e2d89fa2b4
1 changed files with 18 additions and 2 deletions
  1. 18 2
      app/src/protyle/wysiwyg/remove.ts

+ 18 - 2
app/src/protyle/wysiwyg/remove.ts

@@ -246,8 +246,24 @@ export const removeBlock = (protyle: IProtyle, blockElement: Element, range: Ran
     // 设置 bq 和代码块光标
     // 需放在列表处理后 https://github.com/siyuan-note/siyuan/issues/11606
     if (["NodeCodeBlock", "NodeTable", "NodeAttributeView"].includes(blockType)) {
-        if (blockElement.previousElementSibling) {
-            focusBlock(blockElement.previousElementSibling, undefined, false);
+        const previousElement = getPreviousBlock(blockElement)
+        if (previousElement) {
+            if (previousElement.classList.contains("p") && getContenteditableElement(previousElement).textContent === "") {
+                const ppElement = getPreviousBlock(previousElement)
+                transaction(protyle, [{
+                    action: "delete",
+                    id: previousElement.getAttribute("data-node-id"),
+                }], [{
+                    action: "insert",
+                    data: previousElement.outerHTML,
+                    id: previousElement.getAttribute("data-node-id"),
+                    parentID: protyle.block.parentID,
+                    previousID: ppElement ? ppElement.getAttribute("data-node-id") : undefined
+                }]);
+                previousElement.remove();
+            } else {
+                focusBlock(previousElement, undefined, false);
+            }
         }
         return;
     }