make SelectControl.unselectAll safer, use @ahocevar's implementation
This commit is contained in:
@@ -300,18 +300,17 @@ OpenLayers.Control.SelectFeature = OpenLayers.Class(OpenLayers.Control, {
|
||||
*/
|
||||
unselectAll: function(options) {
|
||||
// we'll want an option to supress notification here
|
||||
var layers = this.layers || [this.layer];
|
||||
var layer, feature;
|
||||
for(var l=0; l<layers.length; ++l) {
|
||||
var layers = this.layers || [this.layer],
|
||||
layer, feature, l, numExcept;
|
||||
for(l=0; l<layers.length; ++l) {
|
||||
layer = layers[l];
|
||||
for(var i=layer.selectedFeatures.length-1; i>=0; --i) {
|
||||
feature = layer.selectedFeatures[i];
|
||||
// feature can be undefined here if an unselectfeature
|
||||
// listeners has unselected or removed other features
|
||||
if(feature) {
|
||||
if(!options || options.except != feature) {
|
||||
this.unselect(feature);
|
||||
}
|
||||
numExcept = 0;
|
||||
while(layer.selectedFeatures.length > numExcept) {
|
||||
feature = layer.selectedFeatures[numExcept];
|
||||
if(!options || options.except != feature) {
|
||||
this.unselect(feature);
|
||||
} else {
|
||||
++numExcept;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user