loleaflet/src/layer/tile/CalcTileLayer.js |   12 ++++++++----
 loleaflet/src/layer/tile/TileLayer.js     |   18 +++++++++---------
 2 files changed, 17 insertions(+), 13 deletions(-)

New commits:
commit b882da11ee218ee9f031ea4dc16da777256fa020
Author:     Dennis Francis <[email protected]>
AuthorDate: Sat Jun 6 11:00:18 2020 +0530
Commit:     Dennis Francis <[email protected]>
CommitDate: Mon Jul 6 19:00:25 2020 +0200

    Handle print-twips 'invalidateviewcursor' msg correctly
    
    Change-Id: I0860c157ee9c82c22add4b1342a8be149d919f2e
    Reviewed-on: https://gerrit.libreoffice.org/c/online/+/98151
    Tested-by: Jenkins
    Tested-by: Jenkins CollaboraOffice <[email protected]>
    Reviewed-by: Dennis Francis <[email protected]>

diff --git a/loleaflet/src/layer/tile/CalcTileLayer.js 
b/loleaflet/src/layer/tile/CalcTileLayer.js
index 93a633eb2..4a2dcc8c8 100644
--- a/loleaflet/src/layer/tile/CalcTileLayer.js
+++ b/loleaflet/src/layer/tile/CalcTileLayer.js
@@ -778,14 +778,18 @@ L.CalcTileLayer = L.TileLayer.extend({
                this._onUpdateCurrentHeader();
        },
 
-       _getCursorRectangle: function (msgObj) {
+       _getEditCursorRectangle: function (msgObj) {
 
                if (!this.options.printTwipsMsgsEnabled) {
-                       return 
L.TileLayer.prototype._getCursorRectangle.call(this, msgObj);
+                       return 
L.TileLayer.prototype._getEditCursorRectangle.call(this, msgObj);
                }
 
-               if (typeof msgObj !== 'object' || 
!msgObj.hasOwnProperty('relrect') ||
-                               !msgObj.hasOwnProperty('refpoint')) {
+               if (typeof msgObj !== 'object') {
+                       console.error('invalid edit cursor message');
+                       return undefined;
+               }
+
+               if (!msgObj.hasOwnProperty('relrect') || 
!msgObj.hasOwnProperty('refpoint')) {
                        // This can happen because the kit sends such messages 
(sometimes)
                        // after doing its own parsing (probably needed for 
writer/impress?).
                        // These aren't needed for Calc.
diff --git a/loleaflet/src/layer/tile/TileLayer.js 
b/loleaflet/src/layer/tile/TileLayer.js
index 85ab40d74..0cba2697c 100644
--- a/loleaflet/src/layer/tile/TileLayer.js
+++ b/loleaflet/src/layer/tile/TileLayer.js
@@ -1247,7 +1247,7 @@ L.TileLayer = L.GridLayer.extend({
        _onInvalidateCursorMsg: function (textMsg) {
                textMsg = textMsg.substring('invalidatecursor:'.length + 1);
                var obj = JSON.parse(textMsg);
-               var rectangle = this._getCursorRectangle(obj);
+               var rectangle = this._getEditCursorRectangle(obj);
                if (rectangle === undefined) {
                        return;
                }
@@ -1315,15 +1315,15 @@ L.TileLayer = L.GridLayer.extend({
                        return;
                }
 
-               var strTwips = obj.rectangle.match(/\d+/g);
-               var topLeftTwips = new L.Point(parseInt(strTwips[0]), 
parseInt(strTwips[1]));
-               var offset = new L.Point(parseInt(strTwips[2]), 
parseInt(strTwips[3]));
-               var bottomRightTwips = topLeftTwips.add(offset);
+               var rectangle = this._getEditCursorRectangle(obj);
+               if (rectangle === undefined) {
+                       return;
+               }
 
                this._viewCursors[viewId] = this._viewCursors[viewId] || {};
                this._viewCursors[viewId].bounds = new L.LatLngBounds(
-                       this._twipsToLatLng(topLeftTwips, this._map.getZoom()),
-                       this._twipsToLatLng(bottomRightTwips, 
this._map.getZoom())),
+                       this._twipsToLatLng(rectangle.getTopLeft(), 
this._map.getZoom()),
+                       this._twipsToLatLng(rectangle.getBottomRight(), 
this._map.getZoom())),
                this._viewCursors[viewId].part = parseInt(obj.part);
 
                // FIXME. Server not sending view visible cursor
@@ -3402,10 +3402,10 @@ L.TileLayer = L.GridLayer.extend({
                return 
this.sheetGeometry.getTileTwipsSheetAreaFromPrint(rectangle);
        },
 
-       _getCursorRectangle: function (msgObj) {
+       _getEditCursorRectangle: function (msgObj) {
 
                if (typeof msgObj !== 'object' || 
!msgObj.hasOwnProperty('rectangle')) {
-                       console.error('invalid cursor message');
+                       console.error('invalid edit cursor message');
                        return undefined;
                }
 
_______________________________________________
Libreoffice-commits mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to