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);