loleaflet/src/layer/tile/CanvasTileLayer.js |   19 +++++++++++++------
 1 file changed, 13 insertions(+), 6 deletions(-)

New commits:
commit 701e78a6aef7013622c95c75c2a37f9e6e870a2b
Author:     Michael Meeks <michael.me...@collabora.com>
AuthorDate: Wed Aug 19 18:21:00 2020 +0100
Commit:     Michael Meeks <michael.me...@collabora.com>
CommitDate: Thu Aug 20 11:23:06 2020 +0200

    Detect dpi scale factor change and re-render.
    
    Change-Id: I4c09ade1efdfee67bc5d9224c50cf1825b6657fb
    Reviewed-on: https://gerrit.libreoffice.org/c/online/+/101016
    Tested-by: Jenkins
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com>
    Reviewed-by: Michael Meeks <michael.me...@collabora.com>

diff --git a/loleaflet/src/layer/tile/CanvasTileLayer.js 
b/loleaflet/src/layer/tile/CanvasTileLayer.js
index 06911991c..f6c29d57a 100644
--- a/loleaflet/src/layer/tile/CanvasTileLayer.js
+++ b/loleaflet/src/layer/tile/CanvasTileLayer.js
@@ -40,10 +40,11 @@ L.CanvasTilePainter = L.Class.extend({
                debug: false,
        },
 
-       initialize: function (layer, dpiScale, enableImageSmoothing) {
+       initialize: function (layer, enableImageSmoothing) {
                this._layer = layer;
                this._canvas = this._layer._canvas;
 
+               var dpiScale = L.getDpiScaleFactor();
                if (dpiScale === 1 || dpiScale === 2) {
                        enableImageSmoothing = (enableImageSmoothing === true);
                }
@@ -221,10 +222,12 @@ L.CanvasTilePainter = L.Class.extend({
                var newTopLeft = pixelBounds.getTopLeft();
                var part = this._layer._selectedPart;
                var newSplitPos = splitPanesContext ?
-                       splitPanesContext.getSplitPos(): this._splitPos;
+                   splitPanesContext.getSplitPos(): this._splitPos;
+               var newDpiScale = L.getDpiScaleFactor();
 
                var zoomChanged = (zoom !== this._lastZoom);
                var partChanged = (part !== this._lastPart);
+               var scaleChanged = this._dpiScale != newDpiScale;
 
                var mapSizeChanged = !newMapSize.equals(this._lastMapSize);
                // To avoid flicker, only resize the canvas element if width or 
height of the map increases.
@@ -241,13 +244,16 @@ L.CanvasTilePainter = L.Class.extend({
                        !zoomChanged &&
                        !partChanged &&
                        !resizeCanvas &&
-                       !splitPosChanged);
+                       !splitPosChanged &&
+                       !scaleChanged);
 
                if (skipUpdate) {
                        return;
                }
+               if (scaleChanged)
+                       this._dpiScale = L.getDpiScaleFactor();
 
-               if (resizeCanvas) {
+               if (resizeCanvas || scaleChanged) {
                        this._setCanvasSize(newSize.x, newSize.y);
                        this._lastSize = newSize;
                }
@@ -265,7 +271,8 @@ L.CanvasTilePainter = L.Class.extend({
 
                // TODO: fix _shiftAndPaint for high DPI.
                var shiftPaintDisabled = true;
-               var fullRepaintNeeded = zoomChanged || partChanged || 
resizeCanvas || shiftPaintDisabled;
+               var fullRepaintNeeded = zoomChanged || partChanged || 
resizeCanvas ||
+                   shiftPaintDisabled || scaleChanged;
 
                this._lastZoom = zoom;
                this._lastPart = part;
@@ -439,7 +446,7 @@ L.CanvasTileLayer = L.TileLayer.extend({
                }
 
                this._canvas = L.DomUtil.create('canvas', '', 
this._canvasContainer);
-               this._painter = new L.CanvasTilePainter(this, 
L.getDpiScaleFactor());
+               this._painter = new L.CanvasTilePainter(this);
                this._container.style.position = 'absolute';
 
                if (L.Browser.cypressTest) {
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to