From 36d96126ebee99dfb78a2db928eae59a49507418 Mon Sep 17 00:00:00 2001 From: Tim Schaub Date: Fri, 5 Feb 2010 16:38:34 +0000 Subject: [PATCH] Ensuring that setVisibility is called during setBaseLayer for layers where visibility is true. (With allOverlays true, a layer doesn't have to be visible to beocome the base layer - twisted huh?) r=ahocevar (closes #2290) git-svn-id: http://svn.openlayers.org/trunk/openlayers@10023 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf --- lib/OpenLayers/Map.js | 2 +- tests/Map.html | 21 ++++++++++++++++++++- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/lib/OpenLayers/Map.js b/lib/OpenLayers/Map.js index cdb1bc01de..bf19b13077 100644 --- a/lib/OpenLayers/Map.js +++ b/lib/OpenLayers/Map.js @@ -1122,7 +1122,7 @@ OpenLayers.Map = OpenLayers.Class({ // changing. This is used by tiles to check if they should // draw themselves. this.viewRequestID++; - if(!this.allOverlays) { + if(!this.allOverlays || this.baseLayer.visibility) { this.baseLayer.setVisibility(true); } diff --git a/tests/Map.html b/tests/Map.html index 702ed21d78..487deed50e 100644 --- a/tests/Map.html +++ b/tests/Map.html @@ -1225,7 +1225,7 @@ function test_allOverlays(t) { - t.plan(16); + t.plan(17); var map = new OpenLayers.Map({ div: "map", allOverlays: true @@ -1309,6 +1309,25 @@ map.destroy(); + // make sure setVisibility is called when adding a single layer to the map + map = new OpenLayers.Map({ + div: "map", allOverlays: true + }); + var count = 0; + var layer = new OpenLayers.Layer(null, { + visibility: true, + setVisibility: function() { + ++count; + OpenLayers.Layer.prototype.setVisibility.apply(this, arguments); + } + }); + map.addLayer(layer); + map.zoomToMaxExtent(); + + t.eq(count, 1, "setVisibility called when visibility is true in layer config"); + + map.destroy(); + } function test_panTo(t) {