From 801dba4a38f610872d791be8ca27b4f693dd0186 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maximilian=20Kr=C3=B6g?= Date: Sat, 19 Dec 2020 19:35:45 +0100 Subject: [PATCH] Call Draw finishCondition for every type --- src/ol/interaction/Draw.js | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/src/ol/interaction/Draw.js b/src/ol/interaction/Draw.js index 0787e56212..0409beb7af 100644 --- a/src/ol/interaction/Draw.js +++ b/src/ol/interaction/Draw.js @@ -625,22 +625,23 @@ class Draw extends PointerInteraction { this.handlePointerMove_(event); if (this.shouldHandle_) { - switch (true) { - case !this.finishCoordinate_: - this.startDrawing_(event.coordinate); - if (this.mode_ !== Mode.POINT) { - break; + const startingToDraw = !this.finishCoordinate_; + if (startingToDraw) { + this.startDrawing_(event.coordinate); + } + if (!startingToDraw && this.freehand_) { + this.finishDrawing(); + } else if ( + !this.freehand_ && + (!startingToDraw || this.mode_ === Mode.POINT) + ) { + if (this.atFinish_(event.pixel)) { + if (this.finishCondition_(event)) { + this.finishDrawing(); } - // eslint-disable-next-line no-fallthrough - case this.freehand_ || - (this.atFinish_(event.pixel) && this.finishCondition_(event)): - this.finishDrawing(); - break; - case !this.freehand_: + } else { this.addToDrawing_(event.coordinate); - break; - default: - break; + } } pass = false; } else if (this.freehand_) {