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
|
* APIMethod: destroy
|
||||||
* Deconstruct the layer and clear the grid.
|
* Deconstruct the layer and clear the grid.
|
||||||
|
|||||||
@@ -593,7 +593,7 @@
|
|||||||
|
|
||||||
function test_Layer_Grid_destroy (t) {
|
function test_Layer_Grid_destroy (t) {
|
||||||
|
|
||||||
t.plan( 7 );
|
t.plan( 8 );
|
||||||
|
|
||||||
var map = new OpenLayers.Map('map');
|
var map = new OpenLayers.Map('map');
|
||||||
layer = new OpenLayers.Layer.Grid(name, url, params);
|
layer = new OpenLayers.Layer.Grid(name, url, params);
|
||||||
@@ -608,6 +608,7 @@
|
|||||||
map.addLayer(layer);
|
map.addLayer(layer);
|
||||||
|
|
||||||
map.setCenter(new OpenLayers.LonLat(0,0), 10);
|
map.setCenter(new OpenLayers.LonLat(0,0), 10);
|
||||||
|
map.setCenter(new OpenLayers.LonLat(1,1));
|
||||||
|
|
||||||
|
|
||||||
//grab a reference to one of the tiles
|
//grab a reference to one of the tiles
|
||||||
@@ -616,6 +617,7 @@
|
|||||||
|
|
||||||
layer.destroy();
|
layer.destroy();
|
||||||
t.eq( tile.imgDiv, null, "Tile destroyed" );
|
t.eq( tile.imgDiv, null, "Tile destroyed" );
|
||||||
|
t.eq( layer.timerId, null, "Tile loading timeout cleared");
|
||||||
|
|
||||||
t.ok( layer.grid == null, "tiles appropriately destroyed")
|
t.ok( layer.grid == null, "tiles appropriately destroyed")
|
||||||
|
|
||||||
|
|||||||
@@ -352,6 +352,8 @@
|
|||||||
|
|
||||||
valid = OpenLayers.Map.prototype.isValidZoomLevel.apply(map, [19]);
|
valid = OpenLayers.Map.prototype.isValidZoomLevel.apply(map, [19]);
|
||||||
t.eq(valid, false, "19 is not a valid zoomLevel when baseLayer has restrictedMinZoom of 1");
|
t.eq(valid, false, "19 is not a valid zoomLevel when baseLayer has restrictedMinZoom of 1");
|
||||||
|
|
||||||
|
map.destroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
function test_Map_isValidLonLat(t) {
|
function test_Map_isValidLonLat(t) {
|
||||||
@@ -977,6 +979,8 @@
|
|||||||
map.addControls(controls2, pixels2);
|
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.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");
|
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) {
|
function test_Map_getControl(t) {
|
||||||
@@ -1599,6 +1603,8 @@
|
|||||||
t.eq(map.layers.length, 2, "multiple layers added from options");
|
t.eq(map.layers.length, 2, "multiple layers added from options");
|
||||||
t.ok(map.baseLayer, "map has a base layer");
|
t.ok(map.baseLayer, "map has a base layer");
|
||||||
|
|
||||||
|
map.destroy();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function test_center_option(t) {
|
function test_center_option(t) {
|
||||||
|
|||||||
Reference in New Issue
Block a user