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