Merge pull request #3934 from fredj/drawpoint_events
Fix `drawstart` and `drawend` events when drawing a point
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user