From 279d1829bb1871894be3b6a79c910b7bfac72337 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=20Peru=C4=8Di=C4=87?= Date: Wed, 25 Mar 2015 10:52:29 +0100 Subject: [PATCH] fix: ol.interaction.Select conflict Prevent vertexFeature_ from ol.interaction.Modify from being selected by ol.interaction.Select. The bug occurs when an delete attempt fails. ex: clicikng on the first or last node of LineString, or clicking a line segment between two nodes. --- src/ol/interaction/modifyinteraction.js | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/ol/interaction/modifyinteraction.js b/src/ol/interaction/modifyinteraction.js index d52043b27d..49cb4d23a5 100644 --- a/src/ol/interaction/modifyinteraction.js +++ b/src/ol/interaction/modifyinteraction.js @@ -541,7 +541,7 @@ ol.interaction.Modify.handleEvent = function(mapBrowserEvent) { mapBrowserEvent.type == ol.MapBrowserEvent.EventType.POINTERMOVE) { this.handlePointerMove_(mapBrowserEvent); } - if (!goog.isNull(this.vertexFeature_) && this.snappedToVertex_ && + if (!goog.isNull(this.vertexFeature_) && this.deleteCondition_(mapBrowserEvent)) { var geometry = this.vertexFeature_.getGeometry(); goog.asserts.assertInstanceof(geometry, ol.geom.Point); @@ -707,9 +707,8 @@ ol.interaction.Modify.prototype.insertVertex_ = function(segmentData, vertex) { ol.interaction.Modify.prototype.removeVertex_ = function() { var dragSegments = this.dragSegments_; var segmentsByFeature = {}; - var deleted = false; var component, coordinates, dragSegment, geometry, i, index, left; - var newIndex, newSegment, right, segmentData, uid; + var newIndex, newSegment, right, segmentData, uid, deleted; for (i = dragSegments.length - 1; i >= 0; --i) { dragSegment = dragSegments[i]; segmentData = dragSegment[0]; @@ -793,7 +792,7 @@ ol.interaction.Modify.prototype.removeVertex_ = function() { } } } - return deleted; + return true; };