diff --git a/src/ol/interaction/drawinteraction.js b/src/ol/interaction/drawinteraction.js index beb7d1b273..c2d312aecf 100644 --- a/src/ol/interaction/drawinteraction.js +++ b/src/ol/interaction/drawinteraction.js @@ -398,10 +398,12 @@ ol.interaction.Draw.handleUpEvent_ = function(event) { this.handlePointerMove_(event); if (goog.isNull(this.finishCoordinate_)) { this.startDrawing_(event); - } else if ((this.mode_ === ol.interaction.DrawMode.POINT || - this.mode_ === ol.interaction.DrawMode.CIRCLE) && - !goog.isNull(this.finishCoordinate_) || - this.atFinish_(event)) { + if (this.mode_ === ol.interaction.DrawMode.POINT) { + this.finishDrawing(); + } + } else if (this.mode_ === ol.interaction.DrawMode.CIRCLE) { + this.finishDrawing(); + } else if (this.atFinish_(event)) { this.finishDrawing(); } else { this.addToDrawing_(event); @@ -419,10 +421,7 @@ ol.interaction.Draw.handleUpEvent_ = function(event) { * @private */ ol.interaction.Draw.prototype.handlePointerMove_ = function(event) { - if (this.mode_ === ol.interaction.DrawMode.POINT && - goog.isNull(this.finishCoordinate_)) { - this.startDrawing_(event); - } else if (!goog.isNull(this.finishCoordinate_)) { + if (!goog.isNull(this.finishCoordinate_)) { this.modifyDrawing_(event); } else { this.createOrUpdateSketchPoint_(event); diff --git a/test/spec/ol/interaction/drawinteraction.test.js b/test/spec/ol/interaction/drawinteraction.test.js index 1e3b1d4b8e..b8aec5fe5d 100644 --- a/test/spec/ol/interaction/drawinteraction.test.js +++ b/test/spec/ol/interaction/drawinteraction.test.js @@ -168,10 +168,10 @@ describe('ol.interaction.Draw', function() { simulateEvent('pointermove', 10, 20); simulateEvent('pointerdown', 10, 20); simulateEvent('pointerup', 10, 20); - simulateEvent('pointermove', 20, 20); expect(ds).to.be.called(); - expect(ds.callCount).to.be(2); expect(de).to.be.called(); + simulateEvent('pointermove', 20, 20); + expect(ds.callCount).to.be(1); expect(de.callCount).to.be(1); });