Only draw when one pointer is active

This commit is contained in:
Andreas Hocevar
2020-10-29 20:00:12 +01:00
parent a1a59b4408
commit 23a544aa30
+25 -22
View File
@@ -535,7 +535,7 @@ class Draw extends PointerInteraction {
event.type === MapBrowserEventType.POINTERDOWN event.type === MapBrowserEventType.POINTERDOWN
) { ) {
pass = false; pass = false;
} else if (move) { } else if (move && this.getPointerCount() === 1) {
pass = event.type === MapBrowserEventType.POINTERMOVE; pass = event.type === MapBrowserEventType.POINTERMOVE;
if (pass && this.freehand_) { if (pass && this.freehand_) {
this.handlePointerMove_(event); this.handlePointerMove_(event);
@@ -603,34 +603,37 @@ class Draw extends PointerInteraction {
handleUpEvent(event) { handleUpEvent(event) {
let pass = true; let pass = true;
if (this.downTimeout_) { if (this.getPointerCount() === 0) {
clearTimeout(this.downTimeout_); if (this.downTimeout_) {
this.downTimeout_ = undefined; clearTimeout(this.downTimeout_);
} this.downTimeout_ = undefined;
}
this.handlePointerMove_(event); this.handlePointerMove_(event);
const circleMode = this.mode_ === Mode.CIRCLE; const circleMode = this.mode_ === Mode.CIRCLE;
if (this.shouldHandle_) { if (this.shouldHandle_) {
if (!this.finishCoordinate_) { if (!this.finishCoordinate_) {
this.startDrawing_(event); this.startDrawing_(event);
if (this.mode_ === Mode.POINT) { if (this.mode_ === Mode.POINT) {
this.finishDrawing();
}
} else if (this.freehand_ || circleMode) {
this.finishDrawing(); this.finishDrawing();
} else if (this.atFinish_(event)) {
if (this.finishCondition_(event)) {
this.finishDrawing();
}
} else {
this.addToDrawing_(event.coordinate);
} }
} else if (this.freehand_ || circleMode) { pass = false;
this.finishDrawing(); } else if (this.freehand_) {
} else if (this.atFinish_(event)) { this.abortDrawing();
if (this.finishCondition_(event)) {
this.finishDrawing();
}
} else {
this.addToDrawing_(event.coordinate);
} }
pass = false;
} else if (this.freehand_) {
this.abortDrawing();
} }
if (!pass && this.stopClick_) { if (!pass && this.stopClick_) {
event.stopPropagation(); event.stopPropagation();
} }