From 57237e8a581c8e4335b543bc5e3451f633bdd9dc Mon Sep 17 00:00:00 2001 From: crschmidt Date: Sat, 31 May 2008 17:11:24 +0000 Subject: [PATCH] Fix for "Util.modifyAlphaImageDiv makes hidden elements reappear in IE6.". Patch by jwpage. (Closes #1520) git-svn-id: http://svn.openlayers.org/trunk/openlayers@7299 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf --- lib/OpenLayers/Util.js | 5 +++-- tests/Util.html | 18 +++++++++++++++--- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/lib/OpenLayers/Util.js b/lib/OpenLayers/Util.js index 5a3fcbef43..83343c9012 100644 --- a/lib/OpenLayers/Util.js +++ b/lib/OpenLayers/Util.js @@ -427,8 +427,9 @@ OpenLayers.Util.modifyAlphaImageDiv = function(div, id, px, sz, imgURL, "relative", border); if (OpenLayers.Util.alphaHack()) { - - div.style.display = "inline-block"; + if(div.style.display != "none") { + div.style.display = "inline-block"; + } if (sizing == null) { sizing = "scale"; } diff --git a/tests/Util.html b/tests/Util.html index e8346f07af..c20523ff08 100644 --- a/tests/Util.html +++ b/tests/Util.html @@ -400,7 +400,7 @@ } function test_Util_modifyAlphaImageDiv(t) { - t.plan( 19 ); + t.plan( 20 ); var imageDiv = OpenLayers.Util.createAlphaImageDiv(); @@ -460,8 +460,6 @@ if (OpenLayers.Util.alphaHack()) { - t.eq(imageDiv.style.display, "inline-block", "imageDiv.style.display set correctly"); - var filter = "progid:DXImageTransform.Microsoft" + ".AlphaImageLoader(src='" + img + "', " + "sizingMethod='" + sizing + "') alpha(opacity=" + opacity *100 + ")"; @@ -476,6 +474,20 @@ t.ok(true, "image filter value not set (not in IE)"); } + var imageDiv = OpenLayers.Util.createAlphaImageDiv(); + var display = "none"; + imageDiv.style.display = display; + OpenLayers.Util.modifyAlphaImageDiv(imageDiv, id, xy, sz, img, position, border, sizing, opacity); + t.eq(imageDiv.style.display, display, "imageDiv.style.display set correctly, if 'none'"); + + var imageDiv = OpenLayers.Util.createAlphaImageDiv(); + var display = "block"; + imageDiv.style.display = display; + OpenLayers.Util.modifyAlphaImageDiv(imageDiv, id, xy, sz, img, position, border, sizing, opacity); + t.eq(imageDiv.style.display, "inline-block", "imageDiv.style.display set correctly, if not 'none'"); + + + var imageDiv = OpenLayers.Util.createAlphaImageDiv(id, xy, sz, img, position, border, "scale", opacity); if (OpenLayers.Util.alphaHack()) { var filter = "progid:DXImageTransform.Microsoft" +