After r10021 we lost the ability to set the opacity of a Google layer. This makes layer.setOpacity work again by setting the opactiy of the shared GMap container. r=bartvde (pullup #2562)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@10174 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
@@ -263,7 +263,10 @@ OpenLayers.Layer.Google = OpenLayers.Class(
|
||||
*/
|
||||
setVisibility: function(visible) {
|
||||
this.setGMapVisibility(visible);
|
||||
// sharing a map container, opacity has to be set per layer
|
||||
var opacity = this.opacity == null ? 1 : this.opacity;
|
||||
OpenLayers.Layer.EventPane.prototype.setVisibility.apply(this, arguments);
|
||||
this.setOpacity(opacity);
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -303,6 +306,33 @@ OpenLayers.Layer.Google = OpenLayers.Class(
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* APIMethod: setOpacity
|
||||
* Sets the opacity for the entire layer (all images)
|
||||
*
|
||||
* Parameter:
|
||||
* opacity - {Float}
|
||||
*/
|
||||
setOpacity: function(opacity) {
|
||||
if (opacity !== this.opacity) {
|
||||
if (this.map != null) {
|
||||
this.map.events.triggerEvent("changelayer", {
|
||||
layer: this,
|
||||
property: "opacity"
|
||||
});
|
||||
}
|
||||
this.opacity = opacity;
|
||||
}
|
||||
// Though this layer's opacity may not change, we're sharing a container
|
||||
// and need to update the opacity for the entire container.
|
||||
if (this.getVisibility()) {
|
||||
var container = this.mapObject.getContainer();
|
||||
OpenLayers.Util.modifyDOMElement(
|
||||
container, null, null, null, null, null, null, opacity
|
||||
);
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* APIMethod: destroy
|
||||
* Clean up this layer.
|
||||
|
||||
Reference in New Issue
Block a user