diff --git a/lib/OpenLayers/Map.js b/lib/OpenLayers/Map.js index 23eca09e45..735a25bea7 100644 --- a/lib/OpenLayers/Map.js +++ b/lib/OpenLayers/Map.js @@ -154,7 +154,7 @@ OpenLayers.Map.prototype = { if (this.controls) { for(var i=0; i < this.controls.length; i++) { - this.addControl(this.controls[i]); + this.addControlToMap(this.controls[i]); } } else { this.controls = []; @@ -349,8 +349,18 @@ OpenLayers.Map.prototype = { * @param {OpenLayers.Pixel} px */ addControl: function (control, px) { - control.setMap(this); this.controls.push(control); + this.addControlToMap(control, px); + }, + + /** + * @private + * + * @param {OpenLayers.Control} control + * @param {OpenLayers.Pixel} px + */ + addControlToMap: function (control, px) { + control.setMap(this); var div = control.draw(px); if (div) { div.style.zIndex = this.Z_INDEX_BASE['Control'] + @@ -358,7 +368,7 @@ OpenLayers.Map.prototype = { this.viewPortDiv.appendChild( div ); } }, - + /** * @param {OpenLayers.Popup} popup * @param {Boolean} exclusive If true, closes all other popups first