From 1dfc11ba3fd2a2a1d002997952188553679a7932 Mon Sep 17 00:00:00 2001 From: Daniel Bluhm Date: Fri, 6 Nov 2020 15:54:23 -0500 Subject: [PATCH 1/3] fix: correct wrong element targeting on hover When using plotly inside of a shadow DOM, the calculations used to determine if the pointer has moved off of the graph would use the wrong element to determine the bounding box. --- src/components/fx/hover.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/components/fx/hover.js b/src/components/fx/hover.js index bc4f821d389..21690d132d5 100644 --- a/src/components/fx/hover.js +++ b/src/components/fx/hover.js @@ -333,7 +333,11 @@ function _hover(gd, evt, subplot, noHoverEvent) { return; } - var dbb = evt.target.getBoundingClientRect(); + var target = evt.composedPath && evt.composedPath()[0]; + if (!target) { + return; + } + var dbb = target.getBoundingClientRect(); xpx = evt.clientX - dbb.left; ypx = evt.clientY - dbb.top; From b5235655d292d8d9578b8bdd6900298da9ccccbc Mon Sep 17 00:00:00 2001 From: Daniel Bluhm Date: Fri, 6 Nov 2020 16:31:59 -0500 Subject: [PATCH 2/3] fix: eslint errors, add comment --- src/components/fx/hover.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/components/fx/hover.js b/src/components/fx/hover.js index 21690d132d5..1e3b1760bfb 100644 --- a/src/components/fx/hover.js +++ b/src/components/fx/hover.js @@ -333,8 +333,9 @@ function _hover(gd, evt, subplot, noHoverEvent) { return; } + // Discover event target, traversing open shadow roots. var target = evt.composedPath && evt.composedPath()[0]; - if (!target) { + if(!target) { return; } var dbb = target.getBoundingClientRect(); From 9ee5002b46ae5d2e2db4107db607620576a99e36 Mon Sep 17 00:00:00 2001 From: Daniel Bluhm Date: Sat, 14 Nov 2020 19:03:41 -0500 Subject: [PATCH 3/3] fix: hover event target IE fallback --- src/components/fx/hover.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/components/fx/hover.js b/src/components/fx/hover.js index 1e3b1760bfb..f199bee5c3a 100644 --- a/src/components/fx/hover.js +++ b/src/components/fx/hover.js @@ -336,7 +336,8 @@ function _hover(gd, evt, subplot, noHoverEvent) { // Discover event target, traversing open shadow roots. var target = evt.composedPath && evt.composedPath()[0]; if(!target) { - return; + // Fallback for browsers not supporting composedPath + target = evt.target; } var dbb = target.getBoundingClientRect();