From 2cd14dfbfd5792ddfc4437edbfed925c73188296 Mon Sep 17 00:00:00 2001 From: ahocevar Date: Tue, 15 Jan 2013 13:08:48 +0100 Subject: [PATCH] No .olTileReplacing class for singleTile layers This fixes a regression for singleTile layers with transitionEffect set to 'resize', where the .olTileReplacing class was not removed from the tile. --- lib/OpenLayers/Layer/Grid.js | 4 ++-- tests/Layer/Grid.html | 17 +++++++++++++++++ 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/lib/OpenLayers/Layer/Grid.js b/lib/OpenLayers/Layer/Grid.js index f01d0b1885..b1b96031cd 100644 --- a/lib/OpenLayers/Layer/Grid.js +++ b/lib/OpenLayers/Layer/Grid.js @@ -1080,7 +1080,7 @@ OpenLayers.Layer.Grid = OpenLayers.Class(OpenLayers.Layer.HTTPRequest, { } this.events.triggerEvent("tileloadstart", {tile: tile}); this.numLoadingTiles++; - if (this.backBuffer && this.gridResolution === this.backBufferResolution) { + if (!this.singleTile && this.backBuffer && this.gridResolution === this.backBufferResolution) { OpenLayers.Element.addClass(tile.imgDiv, replacingCls); } }; @@ -1092,7 +1092,7 @@ OpenLayers.Layer.Grid = OpenLayers.Class(OpenLayers.Layer.HTTPRequest, { tile: tile, aborted: aborted }); - if (!aborted && this.backBuffer && this.gridResolution === this.backBufferResolution) { + if (!this.singleTile && !aborted && this.backBuffer && this.gridResolution === this.backBufferResolution) { if (OpenLayers.Element.getStyle(tile.imgDiv, 'display') === 'none') { var bufferTile = document.getElementById(tile.id + '_bb'); if (bufferTile) { diff --git a/tests/Layer/Grid.html b/tests/Layer/Grid.html index 2bdd5d79f6..97a191f96b 100644 --- a/tests/Layer/Grid.html +++ b/tests/Layer/Grid.html @@ -1150,6 +1150,23 @@ }); } + function test_backbuffer_replace_singleTile(t) { + t.plan(1); + var map = new OpenLayers.Map('map'); + var layer = new OpenLayers.Layer.WMS('', '../../img/blank.gif', null, { + singleTile: true, + transitionEffect: 'resize' + }); + map.addLayer(layer); + map.zoomToMaxExtent(); + + t.delay_call(1, function() { + map.zoomIn(); + var tile = layer.grid[0][0]; + t.ok(!OpenLayers.Element.hasClass(tile.imgDiv, 'olTileReplacing'), 'tile is not marked for being replaced for singleTile layers'); + }); + } + function test_singleTile_move_and_zoom(t) { //