loleaflet/src/layer/tile/GridLayer.js | 11 +++-------- loleaflet/src/layer/tile/TileLayer.js | 21 ++++++++++++++++----- 2 files changed, 19 insertions(+), 13 deletions(-)
New commits: commit d45a967e8d46b01f9c31bb37a803d9a02924c321 Author: Mihai Varga <mihai.va...@collabora.com> Date: Tue Jun 30 20:23:07 2015 +0300 Disable animFade when zooming + cache tiles from other zoom levels diff --git a/loleaflet/src/layer/tile/GridLayer.js b/loleaflet/src/layer/tile/GridLayer.js index 1ac09e7..b095a2c 100644 --- a/loleaflet/src/layer/tile/GridLayer.js +++ b/loleaflet/src/layer/tile/GridLayer.js @@ -333,7 +333,6 @@ L.GridLayer = L.Layer.extend({ this._tileZoom = tileZoom; if (tileZoomChanged) { - this._map._fadeAnimated = true; this._updateTileTwips(); this._updateMaxBounds(); } @@ -697,11 +696,7 @@ L.GridLayer = L.Layer.extend({ this._fadeFrame = L.Util.requestAnimFrame(this._updateOpacity, this); } else { tile.active = true; - if (tile._skipPrune) { - // avoid running the algorithm when we just replace a tile - this._pruneTiles(); - } - this._tiles[key]._skipPrune = false; + this._pruneTiles(); } L.DomUtil.addClass(tile.el, 'leaflet-tile-loaded'); @@ -737,8 +732,8 @@ L.GridLayer = L.Layer.extend({ _twipsToCoords: function (twips) { return new L.Point( - twips.x / this._tileWidthTwips, - twips.y / this._tileHeightTwips); + Math.round(twips.x / twips.tileWidth), + Math.round(twips.y / twips.tileHeight)); }, _coordsToTwips: function (coords) { diff --git a/loleaflet/src/layer/tile/TileLayer.js b/loleaflet/src/layer/tile/TileLayer.js index e63daf8..bb245ed 100644 --- a/loleaflet/src/layer/tile/TileLayer.js +++ b/loleaflet/src/layer/tile/TileLayer.js @@ -190,7 +190,7 @@ L.TileLayer = L.GridLayer.extend({ } this._map._scrollContainer.onscroll = L.bind(this._onScroll, this); this._map.on('zoomend resize', this._updateScrollOffset, this); - this._map.on('zoomend', this._onUpdateCursor, this); + this._map.on('zoomstart zoomend', this._onZoom, this); this._map.on('clearselection', this._clearSelections, this); this._map.on('prevpart nextpart', this._onSwitchPart, this); this._map.on('viewmode editmode', this._updateEditViewMode, this); @@ -335,8 +335,6 @@ L.TileLayer = L.GridLayer.extend({ bottomRightTwips = topLeftTwips.add(offset); var invalidBounds = new L.Bounds(topLeftTwips, bottomRightTwips); - this._map._fadeAnimated = false; - for (var key in this._tiles) { var coords = this._tiles[key].coords; var point1 = this._coordsToTwips(coords); @@ -399,7 +397,7 @@ L.TileLayer = L.GridLayer.extend({ } else if (textMsg.startsWith('tile:')) { command = this._parseServerCmd(textMsg); - coords = this._twipsToCoords(new L.Point(command.x, command.y)); + coords = this._twipsToCoords(command); coords.z = command.zoom; coords.part = command.part; var data = bytes.subarray(index + 1); @@ -414,10 +412,14 @@ L.TileLayer = L.GridLayer.extend({ var tile = this._tiles[key]; if (tile) { if (tile.el.src) { - this._tiles[key]._skipPrune = true; + this._map._fadeAnimated = false; } tile.el.src = 'data:image/png;base64,' + window.btoa(strBytes); } + else { + this._tileCache[key] = 'data:image/png;base64,' + window.btoa(strBytes); + } + } else if (textMsg.startsWith('textselection:')) { strTwips = textMsg.match(/\d+/g); @@ -995,6 +997,15 @@ L.TileLayer = L.GridLayer.extend({ else { e.clipboardData.setData('text/plain', this._selectionTextContent); } + }, + + _onZoom: function (e) { + if (e.type === 'zoomstart') { + this._fadeAnimated = false; + } + else if (e.type === 'zoomend') { + this._onUpdateCursor(); + } } }); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits