From 976554fc825b3b56f2d0d79b05b29a9794cb4a11 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Wed, 30 May 2012 09:00:42 +0200 Subject: [PATCH] make SelectControl.unselectAll safer, use @ahocevar's implementation --- lib/OpenLayers/Control/SelectFeature.js | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/lib/OpenLayers/Control/SelectFeature.js b/lib/OpenLayers/Control/SelectFeature.js index 9d2064bfd7..198cef9b1b 100644 --- a/lib/OpenLayers/Control/SelectFeature.js +++ b/lib/OpenLayers/Control/SelectFeature.js @@ -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=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; } } }