diff --git a/lib/OpenLayers/Map.js b/lib/OpenLayers/Map.js index 50eb3bc8c9..ba7e7006fe 100644 --- a/lib/OpenLayers/Map.js +++ b/lib/OpenLayers/Map.js @@ -75,7 +75,9 @@ OpenLayers.Map = OpenLayers.Class({ * The *layer* property will be a reference to the changed layer. The * *property* property will be a key to the changed property (name, * order, opacity, params, visibility or attribution). - * movestart - triggered after the start of a drag, pan, or zoom + * movestart - triggered after the start of a drag, pan, or zoom. The event + * object may include a *zoomChanged* property that tells whether the + * zoom has changed. * move - triggered after each drag, pan, or zoom * moveend - triggered after a drag, pan, or zoom completes * zoomend - triggered after a zoom completes @@ -1908,7 +1910,9 @@ OpenLayers.Map = OpenLayers.Class({ // if neither center nor zoom will change, no need to do anything if (zoomChanged || centerChanged || dragging) { - dragging || this.events.triggerEvent("movestart"); + dragging || this.events.triggerEvent("movestart", { + zoomChanged: zoomChanged + }); if (centerChanged) { if (!zoomChanged && this.center) { diff --git a/tests/Map.html b/tests/Map.html index ffa5234b61..b072585a2b 100644 --- a/tests/Map.html +++ b/tests/Map.html @@ -977,7 +977,7 @@ } function test_Map_moveTo(t) { - t.plan(8); + t.plan(12); map = new OpenLayers.Map('map'); var baseLayer = new OpenLayers.Layer.WMS("Test Layer", @@ -992,10 +992,15 @@ property: event.property }); }); - baseLayer.events.on({ + map.events.on({ move: function() { t.ok(true, "move listener called"); }, + movestart: function(e) { + t.eq(e.zoomChanged, true, "movestart listener called with expected value"); + } + }); + baseLayer.events.on({ moveend: function(e) { t.eq(e.zoomChanged, true, "moveend listener called with expected value"); }