removeLayer must reset layers z-index. Thanks tschaub for the review and the new patch. (closes #1090)

git-svn-id: http://svn.openlayers.org/trunk/openlayers@5386 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
Éric Lemoine
2007-12-12 20:08:49 +00:00
parent 8f38213e86
commit 00d6f66c06
2 changed files with 34 additions and 1 deletions
+14
View File
@@ -632,6 +632,17 @@ OpenLayers.Map = OpenLayers.Class({
+ zIdx * 5 ); + zIdx * 5 );
}, },
/**
* Method: resetLayersZIndex
* Reset each layer's z-index based on layer's array index
*/
resetLayersZIndex: function() {
for (var i = 0; i < this.layers.length; i++) {
var layer = this.layers[i];
this.setLayerZIndex(layer, i);
}
},
/** /**
* APIMethod: addLayer * APIMethod: addLayer
* *
@@ -740,6 +751,9 @@ OpenLayers.Map = OpenLayers.Class({
} }
} }
} }
this.resetLayersZIndex();
this.events.triggerEvent("removelayer"); this.events.triggerEvent("removelayer");
}, },
+20 -1
View File
@@ -602,7 +602,8 @@
layers: layers, layers: layers,
baseLayer: layers[0], baseLayer: layers[0],
layerContainerDiv: {removeChild: f}, layerContainerDiv: {removeChild: f},
events: {triggerEvent: f} events: {triggerEvent: f},
resetLayersZIndex: function() {}
}; };
OpenLayers.Map.prototype.removeLayer.apply(map, [map.baseLayer, false]); OpenLayers.Map.prototype.removeLayer.apply(map, [map.baseLayer, false]);
t.eq(map.baseLayer, null, t.eq(map.baseLayer, null,
@@ -638,6 +639,24 @@
"correct resolution after removal"); "correct resolution after removal");
} }
function test_Map_removeLayer_zindex(t) {
t.plan(2);
map = new OpenLayers.Map('map');
var layer0 = new OpenLayers.Layer('Test Layer 0', {isBaseLayer:true});
var layer1 = new OpenLayers.Layer('Test Layer 1', {isBaseLayer:true});
var layer2 = new OpenLayers.Layer('Test Layer 2', {isBaseLayer:false});
map.addLayers([layer0, layer1, layer2]);
map.removeLayer(layer0);
t.eq(parseInt(layer1.div.style.zIndex), map.Z_INDEX_BASE['BaseLayer'],
"correct z-index after removeLayer");
t.eq(parseInt(layer2.div.style.zIndex), map.Z_INDEX_BASE['Overlay'] + 5,
"correct z-index after removeLayer");
}
function test_13_Map_setBaseLayer_after_pan (t) { function test_13_Map_setBaseLayer_after_pan (t) {
t.plan(1); t.plan(1);