loleaflet/src/layer/tile/CalcTileLayer.js | 33 ++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+)
New commits: commit 4a5df02d648d96c4fb54e7bcc0e3ee56c8f74447 Author: Dennis Francis <dennis.fran...@collabora.com> AuthorDate: Sat Jun 6 19:41:42 2020 +0530 Commit: Dennis Francis <dennis.fran...@collabora.com> CommitDate: Mon Jul 6 19:02:49 2020 +0200 handle text selection messages in print-twips properly Change-Id: Ieedfb48be9e8e5806e9e3e1c0d11ac5704985934 Reviewed-on: https://gerrit.libreoffice.org/c/online/+/98155 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com> Tested-by: Jenkins Reviewed-by: Dennis Francis <dennis.fran...@collabora.com> diff --git a/loleaflet/src/layer/tile/CalcTileLayer.js b/loleaflet/src/layer/tile/CalcTileLayer.js index 3b9548106..e87ecbb3e 100644 --- a/loleaflet/src/layer/tile/CalcTileLayer.js +++ b/loleaflet/src/layer/tile/CalcTileLayer.js @@ -796,6 +796,39 @@ L.CalcTileLayer = L.TileLayer.extend({ var refpoint = L.Point.parse(msgObj.refpoint); refpoint = this.sheetGeometry.getTileTwipsPointFromPrint(refpoint); return relrect.add(refpoint); + }, + + _getTextSelectionRectangles: function (textMsg) { + + if (!this.options.printTwipsMsgsEnabled) { + return L.TileLayer.prototype._getTextSelectionRectangles.call(this, textMsg); + } + + if (typeof textMsg !== 'string') { + console.error('invalid text selection message'); + return []; + } + + var refpointDelim = '::'; + var delimIndex = textMsg.indexOf(refpointDelim); + if (delimIndex === -1) { + // No refpoint information available, treat it as cell-range selection rectangle. + var rangeRectArray = L.Bounds.parseArray(textMsg); + rangeRectArray = rangeRectArray.map(function (rect) { + return this._convertToTileTwipsSheetArea(rect); + }, this); + return rangeRectArray; + } + + var refpoint = L.Point.parse(textMsg.substring(delimIndex + refpointDelim.length)); + refpoint = this.sheetGeometry.getTileTwipsPointFromPrint(refpoint); + + var rectArray = L.Bounds.parseArray(textMsg.substring(0, delimIndex)); + rectArray.forEach(function (rect) { + rect._add(refpoint); // compute absolute coordinates and update in-place. + }); + + return rectArray; } }); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits