From 57e4e98757a28c1f027d40a2828bf9d90993ee96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maximilian=20Kr=C3=B6g?= Date: Fri, 16 Apr 2021 22:10:28 +0200 Subject: [PATCH] Fix event handling with shadow-dom and ie11 event handling --- src/ol/PluggableMap.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/ol/PluggableMap.js b/src/ol/PluggableMap.js index 7c35c43747..f21179a16a 100644 --- a/src/ol/PluggableMap.js +++ b/src/ol/PluggableMap.js @@ -987,6 +987,10 @@ class PluggableMap extends BaseObject { eventType === EventType.WHEEL || eventType === EventType.KEYDOWN ) { + const doc = this.getOwnerDocument(); + const rootNode = this.viewport_.getRootNode + ? this.viewport_.getRootNode() + : doc; const target = /** @type {Node} */ (originalEvent.target); if ( // Abort if the target is a child of the container for elements whose events are not meant @@ -996,7 +1000,7 @@ class PluggableMap extends BaseObject { // It's possible for the target to no longer be in the page if it has been removed in an // event listener, this might happen in a Control that recreates it's content based on // user interaction either manually or via a render in something like https://reactjs.org/ - !this.getOwnerDocument().contains(target) + !(rootNode === doc ? doc.documentElement : rootNode).contains(target) ) { return; }