moveend never triggered for base layers, p=tschaub,me r=tschaub (closes #1831)

git-svn-id: http://svn.openlayers.org/trunk/openlayers@8416 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
Éric Lemoine
2008-11-25 09:37:21 +00:00
parent 8b2f674ec9
commit b694095a89
3 changed files with 28 additions and 7 deletions

View File

@@ -74,12 +74,14 @@ OpenLayers.Layer = OpenLayers.Class({
* - *loadend* Triggered when layer loading ends.
* - *loadcancel* Triggered when layer loading is canceled.
* - *visibilitychanged* Triggered when layer visibility is changed.
* - *moveend* Triggered when layer is moved, object passed as
* - *move* Triggered when layer moves (triggered with every mousemove
* during a drag).
* - *moveend* Triggered when layer is done moving, object passed as
* argument has a zoomChanged boolean property which tells that the
* zoom has changed.
*/
EVENT_TYPES: ["loadstart", "loadend", "loadcancel", "visibilitychanged",
"moveend"],
"move", "moveend"],
/**
* APIProperty: events

View File

@@ -1562,6 +1562,13 @@ OpenLayers.Map = OpenLayers.Class({
//send the move call to the baselayer and all the overlays
this.baseLayer.moveTo(bounds, zoomChanged, dragging);
if(dragging) {
this.baseLayer.events.triggerEvent("move");
} else {
this.baseLayer.events.triggerEvent("moveend",
{"zoomChanged": zoomChanged}
);
}
bounds = this.baseLayer.getExtent();
@@ -1584,9 +1591,13 @@ OpenLayers.Map = OpenLayers.Class({
}
if (inRange && layer.visibility) {
layer.moveTo(bounds, zoomChanged, dragging);
layer.events.triggerEvent("moveend",
{"zoomChanged": zoomChanged}
);
if(dragging) {
layer.events.triggerEvent("move");
} else {
layer.events.triggerEvent("moveend",
{"zoomChanged": zoomChanged}
);
}
}
}
}

View File

@@ -746,16 +746,24 @@
}
function test_Map_moveTo(t) {
t.plan(1);
t.plan(2);
map = new OpenLayers.Map('map');
var baseLayer = new OpenLayers.Layer.WMS("Test Layer",
"http://octo.metacarta.com/cgi-bin/mapserv?",
{map: "/mapdata/vmap_wms.map", layers: "basic"},
{maxResolution: 'auto', maxExtent: new OpenLayers.Bounds(-10,-10,10,10)});
baseLayer.events.on({
move: function() {
t.ok(true, "move listener called");
},
moveend: function(e) {
t.eq(e.zoomChanged, true, "moveend listener called with expected value");
}
});
map.addLayer(baseLayer);
var ll = new OpenLayers.LonLat(-100,-150);
map.moveTo(ll, 0);
map.moveTo(ll, 2);
t.ok(map.getCenter().equals(new OpenLayers.LonLat(0,0)), "safely sets out-of-bounds lonlat");
}