the grid layer needs to clear its tile loading timeout when it's removed from the map, or moveGriddedTiles can be called with this.map set to null, r=crschmidt (closes #3110)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@11482 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
@@ -131,6 +131,20 @@ OpenLayers.Layer.Grid = OpenLayers.Class(OpenLayers.Layer.HTTPRequest, {
|
||||
);
|
||||
},
|
||||
|
||||
/**
|
||||
* Method: removeMap
|
||||
* Called when the layer is removed from the map.
|
||||
*
|
||||
* Parameters:
|
||||
* map - {<OpenLayers.Map>} The map.
|
||||
*/
|
||||
removeMap: function(map) {
|
||||
if(this.timerId != null) {
|
||||
window.clearTimeout(this.timerId);
|
||||
this.timerId = null;
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* APIMethod: destroy
|
||||
* Deconstruct the layer and clear the grid.
|
||||
|
||||
@@ -593,7 +593,7 @@
|
||||
|
||||
function test_Layer_Grid_destroy (t) {
|
||||
|
||||
t.plan( 7 );
|
||||
t.plan( 8 );
|
||||
|
||||
var map = new OpenLayers.Map('map');
|
||||
layer = new OpenLayers.Layer.Grid(name, url, params);
|
||||
@@ -608,6 +608,7 @@
|
||||
map.addLayer(layer);
|
||||
|
||||
map.setCenter(new OpenLayers.LonLat(0,0), 10);
|
||||
map.setCenter(new OpenLayers.LonLat(1,1));
|
||||
|
||||
|
||||
//grab a reference to one of the tiles
|
||||
@@ -616,6 +617,7 @@
|
||||
|
||||
layer.destroy();
|
||||
t.eq( tile.imgDiv, null, "Tile destroyed" );
|
||||
t.eq( layer.timerId, null, "Tile loading timeout cleared");
|
||||
|
||||
t.ok( layer.grid == null, "tiles appropriately destroyed")
|
||||
|
||||
|
||||
@@ -352,6 +352,8 @@
|
||||
|
||||
valid = OpenLayers.Map.prototype.isValidZoomLevel.apply(map, [19]);
|
||||
t.eq(valid, false, "19 is not a valid zoomLevel when baseLayer has restrictedMinZoom of 1");
|
||||
|
||||
map.destroy();
|
||||
}
|
||||
|
||||
function test_Map_isValidLonLat(t) {
|
||||
@@ -977,6 +979,8 @@
|
||||
map.addControls(controls2, pixels2);
|
||||
t.eq(map.controls.length, 5, "three additional controls were added by map.addControls with a px-array");
|
||||
t.eq(map.controls[3].position.toString(), pixels2[1].toString(), "control 'fourthctrl' has position set to given px");
|
||||
|
||||
map.destroy();
|
||||
}
|
||||
|
||||
function test_Map_getControl(t) {
|
||||
@@ -1598,6 +1602,8 @@
|
||||
|
||||
t.eq(map.layers.length, 2, "multiple layers added from options");
|
||||
t.ok(map.baseLayer, "map has a base layer");
|
||||
|
||||
map.destroy();
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user