Quellcode durchsuchen

:bug: fix https://github.com/siyuan-note/siyuan/issues/6643

Vanessa vor 2 Jahren
Ursprung
Commit
abc37e86d8
1 geänderte Dateien mit 10 neuen und 5 gelöschten Zeilen
  1. 10 5
      app/src/protyle/toolbar/index.ts

+ 10 - 5
app/src/protyle/toolbar/index.ts

@@ -610,14 +610,19 @@ export class Toolbar {
             this.range.setEnd(nextElement.lastChild, nextIndex);
         } else if (newNodes.length > 0) {
             const lastNewNode = newNodes[newNodes.length - 1];
-            if (lastNewNode.nodeType !== 3 && (lastNewNode as HTMLElement).getAttribute("data-type") === "inline-math") {
+            if (lastNewNode.nodeType !== 3 && (lastNewNode as HTMLElement).getAttribute("data-type").indexOf("inline-math") > -1) {
+                const mathPreviousSibling = hasPreviousSibling(lastNewNode);
+                if (mathPreviousSibling && mathPreviousSibling.nodeType === 3) {
+                    this.range.setStart(mathPreviousSibling, mathPreviousSibling.textContent.length);
+                } else {
+                    this.range.setStartBefore(lastNewNode);
+                }
                 const mathNextSibling = hasNextSibling(lastNewNode);
-                if (mathNextSibling) { // https://github.com/siyuan-note/siyuan/issues/6065
-                    this.range.setStart(mathNextSibling, 0);
+                if (mathNextSibling && mathNextSibling.nodeType === 3) { // https://github.com/siyuan-note/siyuan/issues/6065
+                    this.range.setEnd(mathNextSibling, 0);
                 } else {
-                    this.range.setStartAfter(lastNewNode);
+                    this.range.setEndAfter(lastNewNode);
                 }
-                this.range.collapse(true);
             } else {
                 if (lastNewNode.lastChild) {
                     if (lastNewNode.lastChild.textContent === Constants.ZWSP) {