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);
|
this.handlePointerMove_(event);
|
||||||
if (goog.isNull(this.finishCoordinate_)) {
|
if (goog.isNull(this.finishCoordinate_)) {
|
||||||
this.startDrawing_(event);
|
this.startDrawing_(event);
|
||||||
} else if ((this.mode_ === ol.interaction.DrawMode.POINT ||
|
if (this.mode_ === ol.interaction.DrawMode.POINT) {
|
||||||
this.mode_ === ol.interaction.DrawMode.CIRCLE) &&
|
this.finishDrawing();
|
||||||
!goog.isNull(this.finishCoordinate_) ||
|
}
|
||||||
this.atFinish_(event)) {
|
} else if (this.mode_ === ol.interaction.DrawMode.CIRCLE) {
|
||||||
|
this.finishDrawing();
|
||||||
|
} else if (this.atFinish_(event)) {
|
||||||
this.finishDrawing();
|
this.finishDrawing();
|
||||||
} else {
|
} else {
|
||||||
this.addToDrawing_(event);
|
this.addToDrawing_(event);
|
||||||
@@ -419,10 +421,7 @@ ol.interaction.Draw.handleUpEvent_ = function(event) {
|
|||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
ol.interaction.Draw.prototype.handlePointerMove_ = function(event) {
|
ol.interaction.Draw.prototype.handlePointerMove_ = function(event) {
|
||||||
if (this.mode_ === ol.interaction.DrawMode.POINT &&
|
if (!goog.isNull(this.finishCoordinate_)) {
|
||||||
goog.isNull(this.finishCoordinate_)) {
|
|
||||||
this.startDrawing_(event);
|
|
||||||
} else if (!goog.isNull(this.finishCoordinate_)) {
|
|
||||||
this.modifyDrawing_(event);
|
this.modifyDrawing_(event);
|
||||||
} else {
|
} else {
|
||||||
this.createOrUpdateSketchPoint_(event);
|
this.createOrUpdateSketchPoint_(event);
|
||||||
|
|||||||
@@ -168,10 +168,10 @@ describe('ol.interaction.Draw', function() {
|
|||||||
simulateEvent('pointermove', 10, 20);
|
simulateEvent('pointermove', 10, 20);
|
||||||
simulateEvent('pointerdown', 10, 20);
|
simulateEvent('pointerdown', 10, 20);
|
||||||
simulateEvent('pointerup', 10, 20);
|
simulateEvent('pointerup', 10, 20);
|
||||||
simulateEvent('pointermove', 20, 20);
|
|
||||||
expect(ds).to.be.called();
|
expect(ds).to.be.called();
|
||||||
expect(ds.callCount).to.be(2);
|
|
||||||
expect(de).to.be.called();
|
expect(de).to.be.called();
|
||||||
|
simulateEvent('pointermove', 20, 20);
|
||||||
|
expect(ds.callCount).to.be(1);
|
||||||
expect(de.callCount).to.be(1);
|
expect(de.callCount).to.be(1);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user