[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