aboutsummaryrefslogtreecommitdiff
path: root/ext/fg/js/document.js
diff options
context:
space:
mode:
authortoasted-nutbread <toasted-nutbread@users.noreply.github.com>2019-08-31 22:38:01 -0400
committertoasted-nutbread <toasted-nutbread@users.noreply.github.com>2019-09-02 11:43:49 -0400
commitee59b3ab8b21d19055302302f28709c6a4e7b918 (patch)
tree23b6079f081441a513e47fc1515b027bd126e5c3 /ext/fg/js/document.js
parent171e3f1097a86b993ba1e16c07c4ad6d5bff75ee (diff)
Reduce amount of isPointInRange calls for repeated ranges
Diffstat (limited to 'ext/fg/js/document.js')
-rw-r--r--ext/fg/js/document.js10
1 files changed, 7 insertions, 3 deletions
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);