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 );
|
+ 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
@@ -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);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user