diff options
Diffstat (limited to 'ext/js/dom/dom-text-scanner.js')
| -rw-r--r-- | ext/js/dom/dom-text-scanner.js | 7 | 
1 files changed, 7 insertions, 0 deletions
| diff --git a/ext/js/dom/dom-text-scanner.js b/ext/js/dom/dom-text-scanner.js index eb56baf9..5325b894 100644 --- a/ext/js/dom/dom-text-scanner.js +++ b/ext/js/dom/dom-text-scanner.js @@ -37,6 +37,8 @@ export class DOMTextScanner {          if (resetOffset) { node = ruby; }          /** @type {Node} */ +        this._initialNode = node; +        /** @type {Node} */          this._node = node;          /** @type {number} */          this._offset = offset; @@ -129,11 +131,16 @@ export class DOMTextScanner {                  }              } else if (nodeType === ELEMENT_NODE) {                  lastNode = node; +                const initialNodeAtBeginningOfNodeGoingBackwards = node === this._initialNode && this._offset === 0 && !forward; +                const initialNodeAtEndOfNodeGoingForwards = node === this._initialNode && this._offset === node.childNodes.length && forward;                  this._offset = 0;                  ({enterable, newlines} = DOMTextScanner.getElementSeekInfo(/** @type {Element} */ (node)));                  if (newlines > this._newlines && generateLayoutContent) {                      this._newlines = newlines;                  } +                if (initialNodeAtBeginningOfNodeGoingBackwards || initialNodeAtEndOfNodeGoingForwards) { +                    enterable = false; +                }              }              /** @type {Node[]} */ |