Merge pull request #452 from twpayne/limit-post-renderer-set-timeout

Don't schedule a new post render delay if one is already active
This commit is contained in:
Tom Payne
2013-04-02 05:49:04 -07:00

View File

@@ -9,6 +9,7 @@ goog.provide('ol.RendererHints');
goog.require('goog.Uri.QueryData');
goog.require('goog.async.AnimationDelay');
goog.require('goog.async.Delay');
goog.require('goog.debug.Logger');
goog.require('goog.dom');
goog.require('goog.dom.ViewportSizeMonitor');
@@ -264,9 +265,9 @@ ol.Map = function(mapOptions) {
/**
* @private
* @type {function(this: ol.Map)}
* @type {goog.async.Delay}
*/
this.handlePostRender_ = goog.bind(this.handlePostRender, this);
this.postRenderDelay_ = new goog.async.Delay(this.handlePostRender, 0, this);
/**
* @private
@@ -346,6 +347,7 @@ ol.Map.prototype.removePreRenderFunction = function(preRenderFunction) {
*/
ol.Map.prototype.disposeInternal = function() {
goog.dom.removeNode(this.viewport_);
goog.dispose(this.postRenderDelay_);
goog.base(this, 'disposeInternal');
};
@@ -762,7 +764,9 @@ ol.Map.prototype.renderFrame_ = function(time) {
this.dispatchEvent(
new ol.MapEvent(ol.MapEventType.POSTRENDER, this, frameState));
goog.global.setTimeout(this.handlePostRender_, 0);
if (!this.postRenderDelay_.isActive()) {
this.postRenderDelay_.start();
}
};