loleaflet/src/layer/tile/CalcTileLayer.js    |    5 -----
 loleaflet/src/layer/tile/GridLayer.js        |   19 +++++++++----------
 loleaflet/src/layer/tile/ImpressTileLayer.js |    5 -----
 loleaflet/src/layer/tile/WriterTileLayer.js  |    1 -
 4 files changed, 9 insertions(+), 21 deletions(-)

New commits:
commit b45cd6cf9faed0eaf205cd8fca5cfdc097485a27
Author:     Michael Meeks <[email protected]>
AuthorDate: Mon Dec 9 16:14:26 2019 +0000
Commit:     Andras Timar <[email protected]>
CommitDate: Mon Jan 6 16:22:40 2020 +0100

    prefetch: cleanup, and avoid constant growth of pre-loading area.
    
    We were inadvertently mutating and growing our copy of the bounds
    to fetch here, causing a chunk of un-necessary rendering load,
    particularly for spreadsheets.
    
    Change-Id: Ia01565c043d1cb0172cabbec16d941dd8b66dd05
    Reviewed-on: https://gerrit.libreoffice.org/c/online/+/84775
    Reviewed-by: Andras Timar <[email protected]>
    Tested-by: Andras Timar <[email protected]>

diff --git a/loleaflet/src/layer/tile/CalcTileLayer.js 
b/loleaflet/src/layer/tile/CalcTileLayer.js
index b616155b0..0fa62bcef 100644
--- a/loleaflet/src/layer/tile/CalcTileLayer.js
+++ b/loleaflet/src/layer/tile/CalcTileLayer.js
@@ -274,7 +274,6 @@ L.CalcTileLayer = L.TileLayer.extend({
                                }
                                else {
                                        // tile outside of the visible area, 
just remove it
-                                       this._preFetchBorder = null;
                                        this._removeTile(key);
                                }
                        }
@@ -392,10 +391,6 @@ L.CalcTileLayer = L.TileLayer.extend({
                        });
                        this._resetPreFetching(true);
                        this._update();
-                       if (this._preFetchPart !== this._selectedPart) {
-                               this._preFetchPart = this._selectedPart;
-                               this._preFetchBorder = null;
-                       }
                }
        },
 
diff --git a/loleaflet/src/layer/tile/GridLayer.js 
b/loleaflet/src/layer/tile/GridLayer.js
index 9999bbb48..2850c88cf 100644
--- a/loleaflet/src/layer/tile/GridLayer.js
+++ b/loleaflet/src/layer/tile/GridLayer.js
@@ -1168,6 +1168,7 @@ L.GridLayer = L.Layer.extend({
                var zoom = this._map.getZoom();
                var tilesToFetch = 10;
                var maxBorderWidth = 5;
+               var tileBorderSrc;
 
                if (this._map._permission === 'edit') {
                        tilesToFetch = 5;
@@ -1175,19 +1176,17 @@ L.GridLayer = L.Layer.extend({
                }
 
                if (!this._preFetchBorder) {
-                       if (this._selectedPart !== this._preFetchPart) {
-                               // all tiles from the new part have to be 
pre-fetched
-                               var tileBorder = this._preFetchBorder = new 
L.Bounds(new L.Point(0, 0), new L.Point(0, 0));
-                       }
-                       else {
-                               var pixelBounds = 
this._map.getPixelBounds(center, zoom);
-                               tileBorder = 
this._pxBoundsToTileRange(pixelBounds);
-                               this._preFetchBorder = tileBorder;
-                       }
+                       var pixelBounds = this._map.getPixelBounds(center, 
zoom);
+                       tileBorderSrc = this._pxBoundsToTileRange(pixelBounds);
+                       this._preFetchBorder = tileBorderSrc;
                }
                else {
-                       tileBorder = this._preFetchBorder;
+                       tileBorderSrc = this._preFetchBorder;
                }
+
+               // We mutate this - so need a temporary copy
+               var tileBorder = new L.Bounds(tileBorderSrc.min, 
tileBorderSrc.max);
+
                var queue = [],
                    finalQueue = [],
                    visitedTiles = {},
diff --git a/loleaflet/src/layer/tile/ImpressTileLayer.js 
b/loleaflet/src/layer/tile/ImpressTileLayer.js
index b19fdd0c0..7fd9db2f2 100644
--- a/loleaflet/src/layer/tile/ImpressTileLayer.js
+++ b/loleaflet/src/layer/tile/ImpressTileLayer.js
@@ -407,7 +407,6 @@ L.ImpressTileLayer = L.TileLayer.extend({
                                }
                                else {
                                        // tile outside of the visible area, 
just remove it
-                                       this._preFetchBorder = null;
                                        this._removeTile(key);
                                }
                        }
@@ -479,10 +478,6 @@ L.ImpressTileLayer = L.TileLayer.extend({
                        this._selectedParts = command.selectedParts || 
[command.selectedPart];
                        this._resetPreFetching(true);
                        this._update();
-                       if (this._preFetchPart !== this._selectedPart) {
-                               this._preFetchPart = this._selectedPart;
-                               this._preFetchBorder = null;
-                       }
                        var partMatch = textMsg.match(/[^\r\n]+/g);
                        // only get the last matches
                        this._partHashes = partMatch.slice(partMatch.length - 
this._parts);
diff --git a/loleaflet/src/layer/tile/WriterTileLayer.js 
b/loleaflet/src/layer/tile/WriterTileLayer.js
index ece0ddfa4..53ad67489 100644
--- a/loleaflet/src/layer/tile/WriterTileLayer.js
+++ b/loleaflet/src/layer/tile/WriterTileLayer.js
@@ -135,7 +135,6 @@ L.WriterTileLayer = L.TileLayer.extend({
                                }
                                else {
                                        // tile outside of the visible area, 
just remove it
-                                       this._preFetchBorder = null;
                                        this._removeTile(key);
                                }
                        }
_______________________________________________
Libreoffice-commits mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to