diff --git a/examples/layerswitcher.html b/examples/layerswitcher.html
new file mode 100644
index 0000000000..909e05dcfb
--- /dev/null
+++ b/examples/layerswitcher.html
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+
+ OpenLayers Example
+
+
+
+
diff --git a/lib/OpenLayers/Control/LayerSwitcher.js b/lib/OpenLayers/Control/LayerSwitcher.js
index 8531d536e9..4bd3930d6a 100644
--- a/lib/OpenLayers/Control/LayerSwitcher.js
+++ b/lib/OpenLayers/Control/LayerSwitcher.js
@@ -99,8 +99,10 @@ OpenLayers.Control.LayerSwitcher.prototype =
this.loadContents();
// set mode to minimize
- this.minimizeControl();
-
+ if(!this.outsideViewport) {
+ this.minimizeControl();
+ }
+
// populate div with current info
this.redraw();
diff --git a/tests/Control/test_LayerSwitcher.html b/tests/Control/test_LayerSwitcher.html
index 43d3da63f8..cecc307edf 100644
--- a/tests/Control/test_LayerSwitcher.html
+++ b/tests/Control/test_LayerSwitcher.html
@@ -22,6 +22,18 @@
t.ok( control.div != null, "draw makes a div" );
t.ok( div != null, "draw returns its div" );
}
+ function test_Control_LayerSwitcher_outsideViewport (t) {
+ t.plan( 2 );
+
+ map = new OpenLayers.Map('map');
+ control = new OpenLayers.Control.LayerSwitcher({'div':OpenLayers.Util.getElement('layerswitcher')});
+ map.addControl(control);
+ console.log(control.outsideViewport);
+ t.eq(control.div.style.width, "250px", "Div is not minimized when added.");
+ control = new OpenLayers.Control.LayerSwitcher();
+ map.addControl(control);
+ t.eq(control.div.style.width, "0px", "Div is minimized when added.");
+ }
function test_03_Control_LayerSwitcher_loadContents(t) {
@@ -110,5 +122,6 @@
+