diff --git a/umap/static/umap/js/umap.controls.js b/umap/static/umap/js/umap.controls.js index f147c04d6..d6a188b29 100644 --- a/umap/static/umap/js/umap.controls.js +++ b/umap/static/umap/js/umap.controls.js @@ -666,7 +666,7 @@ const ControlsMixin = { const connectedPeersCount = L.DomUtil.createButton( 'leaflet-control-connected-peers', rightContainer, - '', + '' ) L.DomEvent.on(connectedPeersCount, 'mouseover', () => { this.tooltip.open({ @@ -1182,17 +1182,6 @@ U.Editable = L.Editable.extend({ initialize: function (map, options) { L.Editable.prototype.initialize.call(this, map, options) this.on('editable:drawing:click editable:drawing:move', this.drawingTooltip) - this.on('editable:drawing:end', (event) => { - this.map.tooltip.close() - // Leaflet.Editable will delete the drawn shape if invalid - // (eg. line has only one drawn point) - // So let's check if the layer has no more shape - if (!event.layer.feature.hasGeom()) { - event.layer.feature.del() - } else { - event.layer.feature.edit() - } - }) // Layer for items added by users this.on('editable:drawing:cancel', (event) => { if (event.layer instanceof U.LeafletMarker) event.layer.feature.del() @@ -1322,4 +1311,19 @@ U.Editable = L.Editable.extend({ L.DomEvent.stop(e) e.cancel() }, + + onEscape: () => { + this.once('editable:drawing:end', (event) => { + this.map.tooltip.close() + // Leaflet.Editable will delete the drawn shape if invalid + // (eg. line has only one drawn point) + // So let's check if the layer has no more shape + if (!event.layer.feature.hasGeom()) { + event.layer.feature.del() + } else { + event.layer.feature.edit() + } + }) + this.stopDrawing() + }, }) diff --git a/umap/static/umap/js/umap.js b/umap/static/umap/js/umap.js index 11305e961..15b928e9d 100644 --- a/umap/static/umap/js/umap.js +++ b/umap/static/umap/js/umap.js @@ -563,7 +563,7 @@ U.Map = L.Map.extend({ if (this.importer.dialog.visible) { this.importer.dialog.close() } else if (this.editEnabled && this.editTools.drawing()) { - this.editTools.stopDrawing() + this.editTools.onEscape() } else if (this.measureTools.enabled()) { this.measureTools.stopDrawing() } else if (this.fullPanel?.isOpen()) {