diff options
| author | toasted-nutbread <toasted-nutbread@users.noreply.github.com> | 2019-06-22 21:42:35 -0400 | 
|---|---|---|
| committer | toasted-nutbread <toasted-nutbread@users.noreply.github.com> | 2019-06-22 21:42:35 -0400 | 
| commit | 542cdb2df9f33cda9c88791d784729af2f7419f6 (patch) | |
| tree | 13952f62cc005a83e53993680aa9cc43766bd489 | |
| parent | f77ac32fe1fa762d064e9809ba5439f25f996a6a (diff) | |
Fix docRangeFromPoint sometimes not returning results
If range.getClientRects() has more than 1 result, it is possible that nothing will be returned even when hovering over a valid target.
| -rw-r--r-- | ext/fg/js/document.js | 16 | 
1 files changed, 4 insertions, 12 deletions
| diff --git a/ext/fg/js/document.js b/ext/fg/js/document.js index 13acb036..5dcf7b3d 100644 --- a/ext/fg/js/document.js +++ b/ext/fg/js/document.js @@ -97,18 +97,10 @@ function docRangeFromPoint(point) {      if(imposter !== null) imposter.style.zIndex = -2147483646;      const rects = range.getClientRects(); - -    if (rects.length === 0) { -        return; -    } - -    const rect = rects[0]; -    if (point.y > rect.bottom + 2) { -        return; -    } - -    if (range) { -        return new TextSourceRange(range); +    for (const rect of rects) { +        if (point.y <= rect.bottom + 2) { +            return new TextSourceRange(range); +        }      }  } |