From 56f37ab3478693f6188762abecc479fe4a1d90f3 Mon Sep 17 00:00:00 2001 From: ahocevar Date: Sun, 3 Mar 2019 22:37:06 +0100 Subject: [PATCH] Disable transition when an interim tile is available --- src/ol/Tile.js | 3 +++ test/spec/ol/renderer/canvas/tilelayer.test.js | 7 ++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/ol/Tile.js b/src/ol/Tile.js index c8d0738661..0680e49eae 100644 --- a/src/ol/Tile.js +++ b/src/ol/Tile.js @@ -170,6 +170,9 @@ class Tile extends EventTarget { // cleaned up by refreshInterimChain) do { if (tile.getState() == TileState.LOADED) { + // Show tile immediately instead of fading it in after loading, because + // the interim tile is in place already + this.transition_ = 0; return tile; } tile = tile.interimTile; diff --git a/test/spec/ol/renderer/canvas/tilelayer.test.js b/test/spec/ol/renderer/canvas/tilelayer.test.js index 4120f086a8..e3f317b565 100644 --- a/test/spec/ol/renderer/canvas/tilelayer.test.js +++ b/test/spec/ol/renderer/canvas/tilelayer.test.js @@ -39,13 +39,18 @@ describe('ol.renderer.canvas.TileLayer', function() { document.body.removeChild(target); }); - it('properly handles interim tiles', function() { + it('properly handles interim tiles', function(done) { const layer = map.getLayers().item(0); + source.once('tileloadend', function(e) { + expect(e.tile.inTransition()).to.be(false); + done(); + }); source.updateParams({TIME: '1'}); map.renderSync(); const tiles = map.getRenderer().getLayerRenderer(layer).renderedTiles; expect(tiles.length).to.be(1); expect(tiles[0]).to.equal(tile); + expect(tile.inTransition()).to.be(true); }); });