Browse Source

:children_crossing: https://github.com/siyuan-note/siyuan/issues/5955 5

Vanessa 2 years ago
parent
commit
d1a6ee491e
1 changed files with 5 additions and 1 deletions
  1. 5 1
      app/src/protyle/util/table.ts

+ 5 - 1
app/src/protyle/util/table.ts

@@ -393,6 +393,8 @@ export const fixTable = (protyle: IProtyle, event: KeyboardEvent, range: Range)
         let previousBrElement;
         if (startContainer.nodeType !== 3 && (startContainer.tagName === "TH" || startContainer.tagName === "TD")) {
             previousBrElement = (startContainer.childNodes[Math.max(0, range.startOffset - 1)] as HTMLElement)?.previousElementSibling;
+        } else if(startContainer.parentElement.tagName=== "SPAN") {
+            previousBrElement = startContainer.parentElement.previousElementSibling;
         } else {
             previousBrElement = startContainer.previousElementSibling;
         }
@@ -422,11 +424,13 @@ export const fixTable = (protyle: IProtyle, event: KeyboardEvent, range: Range)
         let nextBrElement;
         if (endContainer.nodeType !== 3 && (endContainer.tagName === "TH" || endContainer.tagName === "TD")) {
             nextBrElement = (endContainer.childNodes[Math.max(0, range.endOffset - 1)] as HTMLElement)?.nextElementSibling;
+        } else if(endContainer.parentElement.tagName=== "SPAN") {
+            nextBrElement = endContainer.parentElement.nextElementSibling;
         } else {
             nextBrElement = endContainer.nextElementSibling;
         }
         while (nextBrElement) {
-            if (nextBrElement.tagName === "BR") {
+            if (nextBrElement.tagName === "BR" && nextBrElement.nextSibling) {
                 return false;
             }
             nextBrElement = nextBrElement.nextElementSibling;