From 17659b9a809df574031622eae8fe9221b83fe0aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maximilian=20Kr=C3=B6g?= Date: Thu, 24 Dec 2020 01:13:50 +0100 Subject: [PATCH] Do not fire duplicate postrender events --- src/ol/PluggableMap.js | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/ol/PluggableMap.js b/src/ol/PluggableMap.js index a48d7922c8..204b348099 100644 --- a/src/ol/PluggableMap.js +++ b/src/ol/PluggableMap.js @@ -1140,6 +1140,7 @@ class PluggableMap extends BaseObject { if (!targetElement) { if (this.renderer_) { clearTimeout(this.postRenderTimeoutHandle_); + this.postRenderTimeoutHandle_ = undefined; this.postRenderFunctions_.length = 0; this.renderer_.dispose(); this.renderer_ = null; @@ -1438,10 +1439,12 @@ class PluggableMap extends BaseObject { this.dispatchEvent(new MapEvent(MapEventType.POSTRENDER, this, frameState)); - this.postRenderTimeoutHandle_ = setTimeout( - this.handlePostRender.bind(this), - 0 - ); + if (!this.postRenderTimeoutHandle_) { + this.postRenderTimeoutHandle_ = setTimeout(() => { + this.postRenderTimeoutHandle_ = undefined; + this.handlePostRender(); + }, 0); + } } /**