Apply Erik's patch from #680 to fix "removeFeatures() in Layer.Vector does
not remove features from the selectedFeatures array when deleting features" git-svn-id: http://svn.openlayers.org/trunk/openlayers@3104 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
@@ -248,6 +248,12 @@ OpenLayers.Layer.Vector.prototype =
|
|||||||
this.features = OpenLayers.Util.removeItem(this.features, feature);
|
this.features = OpenLayers.Util.removeItem(this.features, feature);
|
||||||
|
|
||||||
this.renderer.eraseGeometry(feature.geometry);
|
this.renderer.eraseGeometry(feature.geometry);
|
||||||
|
|
||||||
|
//in the case that this feature is one of the selected features,
|
||||||
|
// remove it from that array as well.
|
||||||
|
if (OpenLayers.Util.indexOf(this.selectedFeatures, feature) != -1){
|
||||||
|
OpenLayers.Util.removeItem(this.selectedFeatures, feature);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
@@ -29,7 +29,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
function test_03_Layer_Vector_removeFeatures(t) {
|
function test_03_Layer_Vector_removeFeatures(t) {
|
||||||
t.plan(2);
|
t.plan(3);
|
||||||
|
|
||||||
var layer = new OpenLayers.Layer.Vector(name);
|
var layer = new OpenLayers.Layer.Vector(name);
|
||||||
|
|
||||||
@@ -43,6 +43,9 @@
|
|||||||
|
|
||||||
t.ok(layer.features.length == 1, "OpenLayers.Layer.Vector.removeFeatures removes a feature from the features array");
|
t.ok(layer.features.length == 1, "OpenLayers.Layer.Vector.removeFeatures removes a feature from the features array");
|
||||||
layer.addFeatures([pointFeature1.clone(), pointFeature2.clone()]);
|
layer.addFeatures([pointFeature1.clone(), pointFeature2.clone()]);
|
||||||
|
layer.selectedFeatures.push(layer.features[0]);
|
||||||
|
layer.removeFeatures(layer.features[0]);
|
||||||
|
t.eq(layer.selectedFeatures, [], "Remove features removes selected features");
|
||||||
var features = layer.removeFeatures(layer.features);
|
var features = layer.removeFeatures(layer.features);
|
||||||
|
|
||||||
t.ok(layer.features.length == 0,
|
t.ok(layer.features.length == 0,
|
||||||
|
|||||||
Reference in New Issue
Block a user