diff --git a/lib/OpenLayers/Layer.js b/lib/OpenLayers/Layer.js index 5ab605a3f4..5619f56c9b 100644 --- a/lib/OpenLayers/Layer.js +++ b/lib/OpenLayers/Layer.js @@ -458,7 +458,10 @@ OpenLayers.Layer = OpenLayers.Class({ var extent = this.getExtent(); if (extent && this.inRange && this.visibility) { - this.moveTo(extent, true, false); + var zoomChanged = true; + this.moveTo(extent, zoomChanged, false); + this.events.triggerEvent("moveend", + {"zoomChanged": zoomChanged}); redrawn = true; } } diff --git a/tests/Layer.html b/tests/Layer.html index f86490be9d..1144aa9064 100644 --- a/tests/Layer.html +++ b/tests/Layer.html @@ -294,7 +294,7 @@ } function test_Layer_redraw(t) { - t.plan(8) + t.plan(11) var name = 'Test Layer'; var url = "http://octo.metacarta.com/cgi-bin/mapserv"; @@ -325,6 +325,18 @@ t.ok(layer.redraw(), "redraw returns true even if extent has not changed"); + var log = {}; + var onMoveend = function(e) { + log.event = e; + }; + layer.events.on({"moveend": onMoveend}); + layer.redraw(); + layer.events.un({"moveend": onMoveend}); + // test that the moveend event was triggered + t.ok(log.event, "an event was logged"); + t.eq(log.event.type, "moveend", "moveend was triggered"); + t.eq(log.event.zoomChanged, true, "event says zoomChanged true - poor name"); + layer.moveTo = function(bounds, zoomChanged, dragging) { var extent = layer.map.getExtent(); t.ok(bounds.equals(extent), @@ -335,7 +347,6 @@ "redraw calls moveTo with dragging false"); } layer.redraw(); - } function test_layer_setIsBaseLayer(t) {