diff --git a/src/ol/base/layerrenderer.js b/src/ol/base/layerrenderer.js index d1320d7a5c..f6c94f6abf 100644 --- a/src/ol/base/layerrenderer.js +++ b/src/ol/base/layerrenderer.js @@ -1,6 +1,7 @@ goog.provide('ol.LayerRenderer'); goog.require('goog.events'); +goog.require('goog.events.EventType'); goog.require('ol.Layer'); goog.require('ol.LayerProperty'); goog.require('ol.Object'); @@ -41,6 +42,9 @@ ol.LayerRenderer = function(map, layer) { ol.Object.getChangedEventType(ol.LayerProperty.HUE), this.handleLayerHueChange, false, this); + goog.events.listen(this.layer_, goog.events.EventType.LOAD, + this.handleLayerLoad, false, this); + goog.events.listen(this.layer_, ol.Object.getChangedEventType(ol.LayerProperty.OPACITY), this.handleLayerOpacityChange, false, this); @@ -97,6 +101,12 @@ ol.LayerRenderer.prototype.handleLayerHueChange = goog.nullFunction; ol.LayerRenderer.prototype.handleLayerOpacityChange = goog.nullFunction; +/** + * @protected + */ +ol.LayerRenderer.prototype.handleLayerLoad = goog.nullFunction; + + /** * @protected */ diff --git a/src/ol/base/map.js b/src/ol/base/map.js index 489fc347e9..75c1ce4572 100644 --- a/src/ol/base/map.js +++ b/src/ol/base/map.js @@ -511,15 +511,6 @@ ol.Map.prototype.handleLayerAdd = function(layer) { } var layerRenderer = this.createLayerRenderer(layer); this.setLayerRenderer(layer, layerRenderer); - goog.events.listen(layer, goog.events.EventType.LOAD, this.handleLayerLoad, - false, this); -}; - - -/** - */ -ol.Map.prototype.handleLayerLoad = function() { - this.render(); }; @@ -528,8 +519,6 @@ ol.Map.prototype.handleLayerLoad = function() { * @protected */ ol.Map.prototype.handleLayerRemove = function(layer) { - goog.events.unlisten(layer, goog.events.EventType.LOAD, this.handleLayerLoad, - false, this); this.removeLayerRenderer(layer); }; diff --git a/src/ol/webgl/layerrenderer.js b/src/ol/webgl/layerrenderer.js index 94e2518742..357de29eac 100644 --- a/src/ol/webgl/layerrenderer.js +++ b/src/ol/webgl/layerrenderer.js @@ -80,6 +80,14 @@ ol.webgl.LayerRenderer.prototype.handleLayerHueChange = function() { }; +/** + * @inheritDoc + */ +ol.webgl.LayerRenderer.prototype.handleLayerLoad = function() { + this.dispatchChangeEvent(); +}; + + /** * @inheritDoc */