loleaflet/src/layer/tile/TileLayer.js | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+)
New commits: commit 584f6075b440aafc76b755a453c3698a9529758a Author: Mihai Varga <mihai.va...@collabora.com> Date: Tue Sep 29 17:50:08 2015 +0300 loleaflet: fit document horizontally when resizing the window diff --git a/loleaflet/src/layer/tile/TileLayer.js b/loleaflet/src/layer/tile/TileLayer.js index fd8771a..0bf5474 100644 --- a/loleaflet/src/layer/tile/TileLayer.js +++ b/loleaflet/src/layer/tile/TileLayer.js @@ -105,6 +105,7 @@ L.TileLayer = L.GridLayer.extend({ map.on('dragstart', this._onDragStart, this); map.on('requestloksession', this._onRequestLOKSession, this); map.on('error', this._mapOnError, this); + map.on('resize', this._fitDocumentHorizontally, this); for (var key in this._selectionHandles) { this._selectionHandles[key].on('drag dragend', this._onSelectionHandleDrag, this); } @@ -671,6 +672,23 @@ L.TileLayer = L.GridLayer.extend({ _onRequestLOKSession: function () { L.Socket.sendMessage('requestloksession'); + }, + + _fitDocumentHorizontally: function (e) { + if (this._docType !== 'spreadsheet') { + var crsScale = this._map.options.crs.scale(1); + if (this._docPixelSize.x > e.newSize.x) { + var ratio = this._docPixelSize.x / e.newSize.x; + var zoomDelta = Math.ceil(Math.log(ratio) / Math.log(crsScale)); + this._map.setZoom(Math.max(1, this._map.getZoom() - zoomDelta), {animate: false}); + } + else if (e.newSize.x / this._docPixelSize.x > crsScale) { + // we could zoom in + var ratio = e.newSize.x / this._docPixelSize.x; + var zoomDelta = Math.ceil(Math.log(ratio) / Math.log(crsScale)); + this._map.setZoom(Math.min(10, this._map.getZoom() + zoomDelta), {animate: false}); + } + } } }); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits