From f435a98a2aa003b33b47f21e8f410875377364ad Mon Sep 17 00:00:00 2001 From: Peter Robins Date: Thu, 17 May 2012 16:48:43 +0100 Subject: [PATCH] Fix Google terms/poweredby/popup --- lib/OpenLayers/Layer/Google/v3.js | 44 +++++++++++++++++-------------- 1 file changed, 24 insertions(+), 20 deletions(-) diff --git a/lib/OpenLayers/Layer/Google/v3.js b/lib/OpenLayers/Layer/Google/v3.js index 57b024dd74..777f6e7d67 100644 --- a/lib/OpenLayers/Layer/Google/v3.js +++ b/lib/OpenLayers/Layer/Google/v3.js @@ -137,27 +137,31 @@ OpenLayers.Layer.Google.v3 = { var cache = OpenLayers.Layer.Google.cache[this.map.id]; var container = this.map.viewPortDiv; - // move the Map Data popup to the container, if any - while (div.lastChild.style.display == "none") { - container.appendChild(div.lastChild); - } - // move the ToS and branding stuff up to the container div - var termsOfUse = div.lastChild; - container.appendChild(termsOfUse); - termsOfUse.style.zIndex = "1100"; - termsOfUse.style.bottom = ""; - termsOfUse.className = "olLayerGoogleCopyright olLayerGoogleV3"; - termsOfUse.style.display = ""; - cache.termsOfUse = termsOfUse; - - var poweredBy = div.lastChild; - container.appendChild(poweredBy); - poweredBy.style.zIndex = "1100"; - poweredBy.style.bottom = ""; - poweredBy.className = "olLayerGooglePoweredBy olLayerGoogleV3 gmnoprint"; - poweredBy.style.display = ""; - cache.poweredBy = poweredBy; + // depends on value of zIndex, which is not robust + for (var i=div.children.length-1; i>=0; --i) { + if (div.children[i].style.zIndex == 1000001) { + var termsOfUse = div.children[i]; + container.appendChild(termsOfUse); + termsOfUse.style.zIndex = "1100"; + termsOfUse.style.bottom = ""; + termsOfUse.className = "olLayerGoogleCopyright olLayerGoogleV3"; + termsOfUse.style.display = ""; + cache.termsOfUse = termsOfUse; + } + if (div.children[i].style.zIndex == 1000000) { + var poweredBy = div.children[i]; + container.appendChild(poweredBy); + poweredBy.style.zIndex = "1100"; + poweredBy.style.bottom = ""; + poweredBy.className = "olLayerGooglePoweredBy olLayerGoogleV3 gmnoprint"; + poweredBy.style.display = ""; + cache.poweredBy = poweredBy; + } + if (div.children[i].style.zIndex == 10000002) { + container.appendChild(div.children[i]); + } + } this.setGMapVisibility(this.visibility);