Fix clamp coordinates: caretRangeFromPoint needs content-space bounds

This commit is contained in:
John O'Keefe
2026-09-13 18:14:25 -04:00
parent e1fa4698c6
commit 8ac36efbda
+4 -1
View File
@@ -972,7 +972,10 @@ export class Paginator extends HTMLElement {
: range.compareBoundaryPoints(Range.END_TO_END, probe) >= 0) return : range.compareBoundaryPoints(Range.END_TO_END, probe) >= 0) return
const rect = probe.getBoundingClientRect() const rect = probe.getBoundingClientRect()
if (!rect) return if (!rect) return
const x = backward ? this.start + 1 : this.end - 1 const size = this.#rtl ? -this.size : this.size
const x = backward
? this.start - size + 1
: this.end - size - 1
const caret = doc.caretRangeFromPoint?.(x, rect.top) const caret = doc.caretRangeFromPoint?.(x, rect.top)
?? doc.caretPositionFromPoint?.(x, rect.top) ?? doc.caretPositionFromPoint?.(x, rect.top)
if (!caret) return if (!caret) return