From ee59b3ab8b21d19055302302f28709c6a4e7b918 Mon Sep 17 00:00:00 2001 From: toasted-nutbread Date: Sat, 31 Aug 2019 22:38:01 -0400 Subject: Reduce amount of isPointInRange calls for repeated ranges --- ext/fg/js/document.js | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'ext') diff --git a/ext/fg/js/document.js b/ext/fg/js/document.js index 727bc5d2..b6e1f83b 100644 --- a/ext/fg/js/document.js +++ b/ext/fg/js/document.js @@ -269,15 +269,19 @@ function caretRangeFromPointExt(x, y, elements) { const modifications = []; try { let i = 0; + let startContinerPre = null; while (true) { const range = caretRangeFromPoint(x, y); if (range === null) { return null; } - const inRange = isPointInRange(x, y, range); - if (inRange) { - return range; + const startContainer = range.startContainer; + if (startContinerPre !== startContainer) { + if (isPointInRange(x, y, range)) { + return range; + } + startContinerPre = startContainer; } i = disableTransparentElement(elements, i, modifications); -- cgit v1.2.3