From 324603612ddeb0765a1190f3269ec717fb934431 Mon Sep 17 00:00:00 2001 From: crschmidt Date: Mon, 7 Mar 2011 11:18:45 +0000 Subject: [PATCH] "Controls misbehave in WebKit browsers when vector layers present and map is rendered"; this fix was presented by Nick M, and reviewed by erilem. (Closes #2392) git-svn-id: http://svn.openlayers.org/trunk/openlayers@11645 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf --- lib/OpenLayers/Map.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/lib/OpenLayers/Map.js b/lib/OpenLayers/Map.js index 7f6096974f..14cbe6bd91 100644 --- a/lib/OpenLayers/Map.js +++ b/lib/OpenLayers/Map.js @@ -510,6 +510,12 @@ OpenLayers.Map = OpenLayers.Class({ this.div = document.createElement("div"); this.div.style.height = "1px"; this.div.style.width = "1px"; + + // Adding this to the DOM is a fix for Safari SVG rendering bugs; + // See #2392. On initial render(), it is removed from the dom, + // and a new div is added. + this.div.style.display = "none"; + document.body.appendChild(this.div); } OpenLayers.Element.addClass(this.div, 'olMap'); @@ -644,6 +650,11 @@ OpenLayers.Map = OpenLayers.Class({ * will be moved from the current to the new container. */ render: function(div) { + // Fix for Safari SVG rendering bugs; See #2392 + if(this.div && this.div.parentNode) { + this.div.parentNode.removeChild(this.div); + } + this.div = OpenLayers.Util.getElement(div); OpenLayers.Element.addClass(this.div, 'olMap'); this.viewPortDiv.parentNode.removeChild(this.viewPortDiv);