hide Terms Of Use for invisible Google Layers using a negative offset,

because during GMap2 initialization, we don't have control over 
style.display. r=fredj (closes #2328)


git-svn-id: http://svn.openlayers.org/trunk/openlayers@10069 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
ahocevar
2010-02-16 08:05:52 +00:00
parent b165d015e1
commit e21dc76468
2 changed files with 29 additions and 1 deletions

View File

@@ -217,7 +217,7 @@ OpenLayers.Layer.Google = OpenLayers.Class(
delete layer._resized;
layer.mapObject.checkResize();
layer.moveTo(layer.map.getCenter(), layer.map.getZoom());
})
});
}
this._resized = true;
}
@@ -257,6 +257,7 @@ OpenLayers.Layer.Google = OpenLayers.Class(
if (visible === true) {
this.mapObject.setMapType(this.type);
container.style.display = "";
this.termsOfUse.style.left = "";
this.termsOfUse.style.display = "";
this.poweredBy.style.display = "";
cache.displayed = this.id;
@@ -267,6 +268,12 @@ OpenLayers.Layer.Google = OpenLayers.Class(
if (!cache.displayed) {
container.style.display = "none";
this.termsOfUse.style.display = "none";
// move ToU far to the left in addition to setting display
// to "none", because at the end of the GMap2 load
// sequence, display: none will be unset and ToU would be
// visible after loading a map with a google layer that is
// initially hidden.
this.termsOfUse.style.left = "-9999px";
this.poweredBy.style.display = "none";
}
}

View File

@@ -209,6 +209,27 @@
}
}
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.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");
});
} else {
t.plan(0);
t.debug_print("Google tests can't be run from " +
window.location.host);
}
}
</script>
</head>
<body>