diff --git a/src/ol/layer/layer.js b/src/ol/layer/layer.js index 2e331ff189..98a3b027a8 100644 --- a/src/ol/layer/layer.js +++ b/src/ol/layer/layer.js @@ -28,6 +28,9 @@ ol.layer.Layer = function(options) { */ this.source_ = options.source; + goog.events.listen(this.source_, goog.events.EventType.CHANGE, + this.handleSourceChange_, false, this); + if (!this.source_.isReady()) { goog.events.listenOnce(this.source_, goog.events.EventType.LOAD, this.handleSourceLoad_, false, this); @@ -78,6 +81,14 @@ ol.layer.Layer.prototype.getSource = function() { }; +/** + * @private + */ +ol.layer.Layer.prototype.handleSourceChange_ = function() { + this.dispatchChangeEvent(); +}; + + /** * @private */ diff --git a/src/ol/source/source.js b/src/ol/source/source.js index 6d52d6616b..7d1cf9bc43 100644 --- a/src/ol/source/source.js +++ b/src/ol/source/source.js @@ -49,6 +49,14 @@ ol.source.Source = function(options) { goog.inherits(ol.source.Source, goog.events.EventTarget); +/** + * @protected + */ +ol.source.Source.prototype.dispatchChangeEvent = function() { + this.dispatchEvent(goog.events.EventType.CHANGE); +}; + + /** * @protected */