From 50ed564bf6f4d23e2dc48c421439cd3f01f81d14 Mon Sep 17 00:00:00 2001 From: Tim Schaub Date: Thu, 5 Sep 2013 14:56:14 -0600 Subject: [PATCH] Fire a moveend event after rendering The moveend event is fired after rendering if there is no pending animation, current interaction, or other pre-render functions in the queue. --- src/ol/map.js | 9 +++++++++ src/ol/mapevent.js | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/ol/map.js b/src/ol/map.js index bdd1332ff0..4d507301ee 100644 --- a/src/ol/map.js +++ b/src/ol/map.js @@ -979,6 +979,15 @@ ol.Map.prototype.renderFrame_ = function(time) { } Array.prototype.push.apply( this.postRenderFunctions_, frameState.postRenderFunctions); + + var idle = this.preRenderFunctions_.length == 0 && + !frameState.animate && + !frameState.viewHints[ol.ViewHint.ANIMATING] && + !frameState.viewHints[ol.ViewHint.INTERACTING]; + + if (idle) { + this.dispatchEvent(new ol.MapEvent(ol.MapEventType.MOVEEND, this)); + } } this.dispatchEvent( diff --git a/src/ol/mapevent.js b/src/ol/mapevent.js index 080a707a9b..3629fb4936 100644 --- a/src/ol/mapevent.js +++ b/src/ol/mapevent.js @@ -9,7 +9,8 @@ goog.require('ol.FrameState'); * @enum {string} */ ol.MapEventType = { - POSTRENDER: 'postrender' + POSTRENDER: 'postrender', + MOVEEND: 'moveend' };