[Commits] r2475 - in core/trunk/geoext: lib/GeoExt/widgets tests/lib/GeoExt/widgets

commits at geoext.org commits at geoext.org
Mon Nov 8 17:55:31 CET 2010


Author: elemoine
Date: 2010-11-08 17:55:31 +0100 (Mon, 08 Nov 2010)
New Revision: 2475

Modified:
   core/trunk/geoext/lib/GeoExt/widgets/LayerOpacitySlider.js
   core/trunk/geoext/tests/lib/GeoExt/widgets/LayerOpacitySlider.html
Log:
the LayerOpacitySlider is shaky, r=fredj (closes #371)

Modified: core/trunk/geoext/lib/GeoExt/widgets/LayerOpacitySlider.js
===================================================================
--- core/trunk/geoext/lib/GeoExt/widgets/LayerOpacitySlider.js	2010-11-08 16:05:36 UTC (rev 2474)
+++ core/trunk/geoext/lib/GeoExt/widgets/LayerOpacitySlider.js	2010-11-08 16:55:31 UTC (rev 2475)
@@ -184,7 +184,8 @@
      *  Registered as a listener for opacity change.  Updates the value of the slider.
      */
     update: function(evt) {
-        if (evt.property === "opacity" && evt.layer == this.layer) {
+        if (evt.property === "opacity" && evt.layer == this.layer &&
+            !this._settingOpacity) {
             this.setValue(this.getOpacityValue(this.layer));
         }
     },
@@ -290,7 +291,9 @@
             if (this.inverse === true) {
                 value = 1 - value;
             }
+            this._settingOpacity = true;
             this.layer.setOpacity(value);
+            delete this._settingOpacity;
         }
     },
 

Modified: core/trunk/geoext/tests/lib/GeoExt/widgets/LayerOpacitySlider.html
===================================================================
--- core/trunk/geoext/tests/lib/GeoExt/widgets/LayerOpacitySlider.html	2010-11-08 16:05:36 UTC (rev 2474)
+++ core/trunk/geoext/tests/lib/GeoExt/widgets/LayerOpacitySlider.html	2010-11-08 16:55:31 UTC (rev 2475)
@@ -392,7 +392,41 @@
 
         }
 
+        function test_setValue_called_once(t) {
+
+            t.plan(1);
+
+            var map, layer, slider, log;
+
+            map = new OpenLayers.Map("div");
+
+            layer = new OpenLayers.Layer("");
+            map.addLayer(layer);
+
+            slider = new GeoExt.LayerOpacitySlider({
+                renderTo: document.body,
+                layer: layer,
+                aggressive: true,
+                delay: undefined
+            });
+
+            slider.setValue = function(v) {
+                log.cnt++;
+                log.v = v;
+                GeoExt.LayerOpacitySlider.prototype.setValue.apply(
+                    this, arguments);
+            };
+
+            log = {cnt: 0};
+            slider.setValue(50);
+            t.eq(log.cnt, 1,
+                 "setValue called exactly once");
+
+            slider.destroy();
+            map.destroy();
+        }
     </script>
   <body>
+    <div id="map"></div>
   </body>
 </html>



More information about the Commits mailing list