diff --git a/src/ol/feature.js b/src/ol/feature.js index 14c944e6cb..d2ba88dbad 100644 --- a/src/ol/feature.js +++ b/src/ol/feature.js @@ -218,8 +218,8 @@ ol.Feature.prototype.handleGeometryChanged_ = function() { if (goog.isDefAndNotNull(geometry)) { this.geometryChangeKey_ = goog.events.listen(geometry, goog.events.EventType.CHANGE, this.handleGeometryChange_, false, this); - this.changed(); } + this.changed(); }; diff --git a/test/spec/ol/feature.test.js b/test/spec/ol/feature.test.js index 2c5bae5f29..62f368617e 100644 --- a/test/spec/ol/feature.test.js +++ b/test/spec/ol/feature.test.js @@ -416,6 +416,19 @@ describe('ol.Feature', function() { }); }); + describe('#setGeometry()', function() { + + it('dispatches a change event when geometry is set to null', + function() { + var feature = new ol.Feature({ + geometry: new ol.geom.Point([0, 0]) + }); + var spy = sinon.spy(); + feature.on('change', spy); + feature.setGeometry(null); + expect(spy.callCount).to.be(1); + }); + }); });