Merge pull request #13095 from ahocevar/rendercomplete-tiles

Render is only complete when no tiles are queued
This commit is contained in:
Andreas Hocevar
2021-12-17 16:06:51 +01:00
committed by GitHub

View File

@@ -208,6 +208,12 @@ class PluggableMap extends BaseObject {
const optionsInternal = createOptionsInternal(options);
/**
* @private
* @type {boolean}
*/
this.renderComplete_;
/** @private */
this.boundHandleBrowserEvent_ = this.handleBrowserEvent.bind(this);
@@ -1150,8 +1156,7 @@ class PluggableMap extends BaseObject {
frameState &&
this.hasListener(RenderEventType.RENDERCOMPLETE) &&
!frameState.animate &&
!this.tileQueue_.getTilesLoading() &&
!this.getLoading()
this.renderComplete_
) {
this.renderer_.dispatchRenderEvent(
RenderEventType.RENDERCOMPLETE,
@@ -1528,6 +1533,11 @@ class PluggableMap extends BaseObject {
this.dispatchEvent(new MapEvent(MapEventType.POSTRENDER, this, frameState));
this.renderComplete_ =
!this.tileQueue_.getTilesLoading() &&
!this.tileQueue_.getCount() &&
!this.getLoading();
if (!this.postRenderTimeoutHandle_) {
this.postRenderTimeoutHandle_ = setTimeout(() => {
this.postRenderTimeoutHandle_ = undefined;