From cc5818d4c7e14a3517a7df5cc136751ea539a9a6 Mon Sep 17 00:00:00 2001 From: ahocevar Date: Wed, 10 Aug 2011 08:29:31 +0000 Subject: [PATCH] reverting r12185 (closes #3431) git-svn-id: http://svn.openlayers.org/trunk/openlayers@12230 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf --- lib/OpenLayers/Layer.js | 20 ++++++++++++++++++-- lib/OpenLayers/Map.js | 2 -- theme/default/style.css | 9 +++++++++ 3 files changed, 27 insertions(+), 4 deletions(-) diff --git a/lib/OpenLayers/Layer.js b/lib/OpenLayers/Layer.js index dca417b11c..1270e35af2 100644 --- a/lib/OpenLayers/Layer.js +++ b/lib/OpenLayers/Layer.js @@ -347,8 +347,11 @@ OpenLayers.Layer = OpenLayers.Class({ this.id = OpenLayers.Util.createUniqueID(this.CLASS_NAME + "_"); this.div = OpenLayers.Util.createDiv(this.id); - this.div.style.width = "100%"; - this.div.style.height = "100%"; + var style = this.div.style; + style.width = "100%"; + style.height = "100%"; + style.overflow = ""; + this.div.className = "olLayerDiv"; this.div.dir = "ltr"; if (this.opacity != null && this.opacity < 1) { OpenLayers.Util.modifyDOMElement( @@ -367,6 +370,19 @@ OpenLayers.Layer = OpenLayers.Class({ if (this.wrapDateLine) { this.displayOutsideMaxExtent = true; } + + //TODO remove the if block below when we drop support for IE8. + if (parseInt(navigator.appVersion.split("MSIE")[1], 10) == 8) { + // Workaround for opacity handling in IE8 - also see + // .ie8-opacity-hack selectors in theme/default/style.css + this.events.register("loadend", this, function() { + var opacity = this.opacity; + if (opacity != null && opacity >= 0 && opacity < 1) { + OpenLayers.Element.addClass(this.div, "ie8-opacity-hack"); + this.div.style.filter = "alpha(opacity=" + (opacity * 100) + ")"; + } + }); + } }, /** diff --git a/lib/OpenLayers/Map.js b/lib/OpenLayers/Map.js index 3f2ded4e95..f1963eef19 100644 --- a/lib/OpenLayers/Map.js +++ b/lib/OpenLayers/Map.js @@ -971,8 +971,6 @@ OpenLayers.Map = OpenLayers.Class({ } - layer.div.className = "olLayerDiv"; - layer.div.style.overflow = ""; this.setLayerZIndex(layer, this.layers.length); if (layer.isFixed) { diff --git a/theme/default/style.css b/theme/default/style.css index 3aeac29c2e..1c835d45af 100644 --- a/theme/default/style.css +++ b/theme/default/style.css @@ -14,6 +14,15 @@ div.olLayerDiv { -khtml-user-select: none; } +/* TODO remove the two style definitions below when we drop support for IE8 */ +div.olLayerDiv.ie8-opacity-hack { + width: 9999px !important; + height: 9999px !important; +} +div.olLayerDiv.ie8-opacity-hack div, .ie8-opacity-hack img.olTileImage { + filter: inherit; +} + .olLayerGoogleCopyright { left: 2px; bottom: 2px;