Fix issue with DOM layers in wrong order

When removing/inserting layers back-to-back, the layer elements can
get out of order because createLayerRenderer always appends to the
layer pane. This makes it always reattach the layer node at the
correct index, ensuring correct layer ordering.
This commit is contained in:
Austin Hyde
2014-01-27 11:22:21 -05:00
parent 48cf5926b8
commit b4d2ab5c13

View File

@@ -71,7 +71,6 @@ ol.renderer.dom.Map.prototype.createLayerRenderer = function(layer) {
goog.asserts.fail();
return null;
}
goog.dom.appendChild(this.layersPane_, layerRenderer.getTarget());
return layerRenderer;
};
@@ -94,7 +93,9 @@ ol.renderer.dom.Map.prototype.renderFrame = function(frameState) {
var i, ii, layer, layerRenderer, layerState;
for (i = 0, ii = layersArray.length; i < ii; ++i) {
layer = layersArray[i];
layerRenderer = this.getLayerRenderer(layer);
layerRenderer = /** @type {ol.renderer.dom.Layer} */ (
this.getLayerRenderer(layer));
goog.dom.insertChildAt(this.layersPane_, layerRenderer.getTarget(), i);
layerState = frameState.layerStates[goog.getUid(layer)];
if (layerState.sourceState == ol.source.State.READY) {
layerRenderer.prepareFrame(frameState, layerState);