diff options
Diffstat (limited to 'ext/fg/js')
-rw-r--r-- | ext/fg/js/util.js | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/ext/fg/js/util.js b/ext/fg/js/util.js index ac6ee428..be809bfb 100644 --- a/ext/fg/js/util.js +++ b/ext/fg/js/util.js @@ -119,8 +119,17 @@ function docImposterHide() { } function docRangeFromPoint(point, imposter) { - if (!document.elementFromPoint) { - document.elementFromPoint = (x, y) => { + const element = document.elementFromPoint(point.x, point.y); + if (element !== null) { + if (element.nodeName === 'IMG' || element.nodeName === 'BUTTON') { + return new TextSourceElement(element); + } else if (imposter && (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA')) { + docImposterCreate(element); + } + } + + if (!document.caretRangeFromPoint) { + document.caretRangeFromPoint = (x, y) => { const position = document.caretPositionFromPoint(x,y); if (position === null) { return null; @@ -133,15 +142,6 @@ function docRangeFromPoint(point, imposter) { }; } - const element = document.elementFromPoint(point.x, point.y); - if (element !== null) { - if (element.nodeName === 'IMG' || element.nodeName === 'BUTTON') { - return new TextSourceElement(element); - } else if (imposter && (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA')) { - docImposterCreate(element); - } - } - const range = document.caretRangeFromPoint(point.x, point.y); if (range !== null) { docImposterHide(); |