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
+4 -2
View File
@@ -74,12 +74,14 @@ OpenLayers.Layer = OpenLayers.Class({
* - *loadend* Triggered when layer loading ends. * - *loadend* Triggered when layer loading ends.
* - *loadcancel* Triggered when layer loading is canceled. * - *loadcancel* Triggered when layer loading is canceled.
* - *visibilitychanged* Triggered when layer visibility is changed. * - *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 * argument has a zoomChanged boolean property which tells that the
* zoom has changed. * zoom has changed.
*/ */
EVENT_TYPES: ["loadstart", "loadend", "loadcancel", "visibilitychanged", EVENT_TYPES: ["loadstart", "loadend", "loadcancel", "visibilitychanged",
"moveend"], "move", "moveend"],
/** /**
* APIProperty: events * APIProperty: events
+14 -3
View File
@@ -1562,6 +1562,13 @@ OpenLayers.Map = OpenLayers.Class({
//send the move call to the baselayer and all the overlays //send the move call to the baselayer and all the overlays
this.baseLayer.moveTo(bounds, zoomChanged, dragging); 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(); bounds = this.baseLayer.getExtent();
@@ -1584,9 +1591,13 @@ OpenLayers.Map = OpenLayers.Class({
} }
if (inRange && layer.visibility) { if (inRange && layer.visibility) {
layer.moveTo(bounds, zoomChanged, dragging); layer.moveTo(bounds, zoomChanged, dragging);
layer.events.triggerEvent("moveend", if(dragging) {
{"zoomChanged": zoomChanged} layer.events.triggerEvent("move");
); } else {
layer.events.triggerEvent("moveend",
{"zoomChanged": zoomChanged}
);
}
} }
} }
} }
+10 -2
View File
@@ -746,16 +746,24 @@
} }
function test_Map_moveTo(t) { function test_Map_moveTo(t) {
t.plan(1); t.plan(2);
map = new OpenLayers.Map('map'); map = new OpenLayers.Map('map');
var baseLayer = new OpenLayers.Layer.WMS("Test Layer", var baseLayer = new OpenLayers.Layer.WMS("Test Layer",
"http://octo.metacarta.com/cgi-bin/mapserv?", "http://octo.metacarta.com/cgi-bin/mapserv?",
{map: "/mapdata/vmap_wms.map", layers: "basic"}, {map: "/mapdata/vmap_wms.map", layers: "basic"},
{maxResolution: 'auto', maxExtent: new OpenLayers.Bounds(-10,-10,10,10)}); {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); map.addLayer(baseLayer);
var ll = new OpenLayers.LonLat(-100,-150); 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"); t.ok(map.getCenter().equals(new OpenLayers.LonLat(0,0)), "safely sets out-of-bounds lonlat");
} }