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:
@@ -632,6 +632,17 @@ OpenLayers.Map = OpenLayers.Class({
|
||||
+ 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
|
||||
*
|
||||
@@ -740,6 +751,9 @@ OpenLayers.Map = OpenLayers.Class({
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
this.resetLayersZIndex();
|
||||
|
||||
this.events.triggerEvent("removelayer");
|
||||
},
|
||||
|
||||
|
||||
@@ -602,7 +602,8 @@
|
||||
layers: layers,
|
||||
baseLayer: layers[0],
|
||||
layerContainerDiv: {removeChild: f},
|
||||
events: {triggerEvent: f}
|
||||
events: {triggerEvent: f},
|
||||
resetLayersZIndex: function() {}
|
||||
};
|
||||
OpenLayers.Map.prototype.removeLayer.apply(map, [map.baseLayer, false]);
|
||||
t.eq(map.baseLayer, null,
|
||||
@@ -638,6 +639,24 @@
|
||||
"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) {
|
||||
t.plan(1);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user