From 2eb866658ab7a71ab1d13b30f9f5c5ad2681af52 Mon Sep 17 00:00:00 2001 From: ahocevar Date: Wed, 17 Feb 2010 18:12:29 +0000 Subject: [PATCH] fixed visibility issue with allOverlays:true. r=pgiraud (closes #2328) git-svn-id: http://svn.openlayers.org/trunk/openlayers@10079 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf --- lib/OpenLayers/Layer/Google.js | 4 ++++ tests/Layer/Google.html | 33 +++++++++++++++++++++++---------- 2 files changed, 27 insertions(+), 10 deletions(-) diff --git a/lib/OpenLayers/Layer/Google.js b/lib/OpenLayers/Layer/Google.js index 9150f917a7..b7b8443cd7 100644 --- a/lib/OpenLayers/Layer/Google.js +++ b/lib/OpenLayers/Layer/Google.js @@ -195,6 +195,10 @@ OpenLayers.Layer.Google = OpenLayers.Class( } else { this.dragPanMapObject = null; } + + if(this.isBaseLayer === false) { + this.setGMapVisibility(this.div.style.display !== "none"); + } }, diff --git a/tests/Layer/Google.html b/tests/Layer/Google.html index 3dbae82bfc..1750189259 100644 --- a/tests/Layer/Google.html +++ b/tests/Layer/Google.html @@ -211,18 +211,31 @@ function test_Layer_Google_setGMapVisibility(t) { if(validkey) { - t.plan(3); - var map = new OpenLayers.Map('map'); - var gmap = new OpenLayers.Layer.Google("Google Streets"); - var dummy = new OpenLayers.Layer("Dummy", {isBaseLayer: true}); - map.addLayers([dummy, gmap]); - map.zoomToMaxExtent(); + t.plan(4); + + var map1 = new OpenLayers.Map('map'); + var gmap1 = new OpenLayers.Layer.Google("Google Streets"); + var dummy1 = new OpenLayers.Layer("Dummy", {isBaseLayer: true}); + map1.addLayers([dummy1, gmap1]); + map1.zoomToMaxExtent(); t.delay_call(2, function() { - t.eq(map.baseLayer.name, "Dummy", "Dummy layer is the base layer"); - t.ok(gmap.termsOfUse.style.display == "none" || gmap.termsOfUse.style.left == "-9999px", "termsOfUse is not visible"); - t.eq(gmap.poweredBy.style.display, "none", "poweredBy is not visible"); - }); + t.ok(gmap1.termsOfUse.style.display == "none" || gmap1.termsOfUse.style.left == "-9999px", "termsOfUse is not visible"); + t.eq(gmap1.poweredBy.style.display, "none", "poweredBy is not visible"); + map1.destroy(); + }); + + var map2 = new OpenLayers.Map('map', {allOverlays: true}); + var gmap2 = new OpenLayers.Layer.Google("Google Streets", {visibility: false}); + var dummy2 = new OpenLayers.Layer("Dummy"); + map2.addLayers([gmap2, dummy2]); + map2.zoomToMaxExtent(); + + t.delay_call(2, function() { + t.ok(gmap2.termsOfUse.style.display == "none" || gmap2.termsOfUse.style.left == "-9999px", "allOverlays:true - termsOfUse is not visible"); + t.eq(gmap2.poweredBy.style.display, "none", "allOverlays:true - poweredBy is not visible"); + map2.destroy(); + }); } else { t.plan(0); t.debug_print("Google tests can't be run from " +