Merge pull request #805 from mosesonline/unselectAllFix

unselectAll on removing layer fix
This commit is contained in:
ahocevar
2012-12-24 06:17:04 -08:00
3 changed files with 38 additions and 10 deletions

View File

@@ -305,12 +305,17 @@ OpenLayers.Control.SelectFeature = OpenLayers.Class(OpenLayers.Control, {
for(l=0; l<layers.length; ++l) {
layer = layers[l];
numExcept = 0;
while(layer.selectedFeatures.length > numExcept) {
feature = layer.selectedFeatures[numExcept];
if(!options || options.except != feature) {
this.unselect(feature);
} else {
++numExcept;
//layer.selectedFeatures is null when layer is destroyed and
//one of it's preremovelayer listener calls setLayer
//with another layer on this control
if(layer.selectedFeatures != null) {
while(layer.selectedFeatures.length > numExcept) {
feature = layer.selectedFeatures[numExcept];
if(!options || options.except != feature) {
this.unselect(feature);
} else {
++numExcept;
}
}
}
}