diff --git a/lib/OpenLayers/Control/OverviewMap.js b/lib/OpenLayers/Control/OverviewMap.js index 0097ae87a7..19d3f5740a 100644 --- a/lib/OpenLayers/Control/OverviewMap.js +++ b/lib/OpenLayers/Control/OverviewMap.js @@ -147,8 +147,7 @@ OpenLayers.Control.OverviewMap.prototype = // Optionally add min/max buttons if the control will go in the // map viewport. - if(!this.div.parentNode || - (this.div.parentNode.className == 'olMapViewport')) { + if(!this.outsideViewport) { this.div.className = 'olControlOverviewMapContainer'; var imgLocation = OpenLayers.Util.getImagesLocation(); // maximize button div diff --git a/lib/OpenLayers/Map.js b/lib/OpenLayers/Map.js index 96d329a1f8..0399b51ea4 100644 --- a/lib/OpenLayers/Map.js +++ b/lib/OpenLayers/Map.js @@ -480,13 +480,13 @@ OpenLayers.Map.prototype = { * @param {OpenLayers.Pixel} px */ addControlToMap: function (control, px) { + // If a control doesn't have a div at this point, it belongs in the + // viewport. + control.outsideViewport = (control.div != null); control.setMap(this); var div = control.draw(px); if (div) { - // Only elements without parents should be appended to the viewport. - // In IE, even elements without parents are given a parent node - // of type 11 (DOCUMENT_FRAGMENT_NODE). - if(!div.parentNode || (div.parentNode.nodeType == 11)) { + if(!control.outsideViewport) { div.style.zIndex = this.Z_INDEX_BASE['Control'] + this.controls.length; this.viewPortDiv.appendChild( div );