From 6d0cd60c013bae754ad6b90f2bc0a2ef03963325 Mon Sep 17 00:00:00 2001 From: iseulde Date: Fri, 4 May 2018 20:28:35 +0200 Subject: [PATCH 1/2] Fix caretRangeFromPoint for Firefox --- utils/dom.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/utils/dom.js b/utils/dom.js index bedf98ba6c5fe..eaa77fe5baa84 100644 --- a/utils/dom.js +++ b/utils/dom.js @@ -251,6 +251,12 @@ function caretRangeFromPoint( doc, x, y ) { } const point = doc.caretPositionFromPoint( x, y ); + + // Happens when point is out of view. + if ( ! point ) { + return null; + } + const range = doc.createRange(); range.setStart( point.offsetNode, point.offset ); From f11bdefce3b730809e71bd4d92e5b2a805b3ee72 Mon Sep 17 00:00:00 2001 From: iseulde Date: Sat, 5 May 2018 15:19:09 +0200 Subject: [PATCH 2/2] Add reference link to added code --- utils/dom.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/utils/dom.js b/utils/dom.js index eaa77fe5baa84..f0dbeb5c5ae8f 100644 --- a/utils/dom.js +++ b/utils/dom.js @@ -252,7 +252,8 @@ function caretRangeFromPoint( doc, x, y ) { const point = doc.caretPositionFromPoint( x, y ); - // Happens when point is out of view. + // If x or y are negative, outside viewport, or there is no text entry node. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/caretRangeFromPoint if ( ! point ) { return null; }