From d643492888b908023e0330920e07c726209001dd Mon Sep 17 00:00:00 2001 From: Tim Schaub Date: Wed, 2 Jan 2008 18:54:33 +0000 Subject: [PATCH] Proper handling of virtual vertices so we don't leave them on the layer. r=crschmidt (closes #1230) git-svn-id: http://svn.openlayers.org/trunk/openlayers@5623 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf --- lib/OpenLayers/Control/ModifyFeature.js | 14 +++++++++++--- tests/Control/test_ModifyFeature.html | 7 +++---- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/lib/OpenLayers/Control/ModifyFeature.js b/lib/OpenLayers/Control/ModifyFeature.js index c07eaa44ce..a1b1244484 100644 --- a/lib/OpenLayers/Control/ModifyFeature.js +++ b/lib/OpenLayers/Control/ModifyFeature.js @@ -385,8 +385,10 @@ OpenLayers.Control.ModifyFeature = OpenLayers.Class(OpenLayers.Control, { // dragging a virtual vertex vertex.geometry.parent.addComponent(vertex.geometry, vertex._index); + // move from virtual to real vertex delete vertex._index; OpenLayers.Util.removeItem(this.virtualVertices, vertex); + this.vertices.push(vertex); } else if(vertex == this.dragHandle) { // dragging a drag handle this.layer.removeFeatures(this.vertices); @@ -398,8 +400,10 @@ OpenLayers.Control.ModifyFeature = OpenLayers.Class(OpenLayers.Control, { } // dragging a radius handle - no special treatment // dragging a real vertex - no special treatment - this.layer.destroyFeatures(this.virtualVertices); - this.virtualVertices = []; + if(this.virtualVertices.length > 0) { + this.layer.destroyFeatures(this.virtualVertices); + this.virtualVertices = []; + } this.layer.drawFeature(this.feature, this.selectControl.selectStyle); } // keep the vertex on top so it gets the mouseout after dragging @@ -499,7 +503,11 @@ OpenLayers.Control.ModifyFeature = OpenLayers.Class(OpenLayers.Control, { vertex = new OpenLayers.Feature.Vector(geometry); control.vertices.push(vertex); } else { - for(i=0; i