loleaflet/src/layer/marker/Annotation.js |   45 +++++++++++++++++++++++++------
 1 file changed, 37 insertions(+), 8 deletions(-)

New commits:
commit 9db14f70a25b565ea1482ac5509e5842c2cbab91
Author:     Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk>
AuthorDate: Mon Jun 29 14:38:16 2020 +0200
Commit:     Tomaž Vajngerl <qui...@gmail.com>
CommitDate: Mon Jun 29 20:34:46 2020 +0200

    Prevent crash when the annotation doesn't have the rectangle data
    
    Change-Id: I04bc18f976bd7b2541418dda38b4c7809754dd4f
    Reviewed-on: https://gerrit.libreoffice.org/c/online/+/97411
    Tested-by: Jenkins
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com>
    Reviewed-by: Tomaž Vajngerl <qui...@gmail.com>

diff --git a/loleaflet/src/layer/marker/Annotation.js 
b/loleaflet/src/layer/marker/Annotation.js
index 8d80aec57..35d7565bc 100644
--- a/loleaflet/src/layer/marker/Annotation.js
+++ b/loleaflet/src/layer/marker/Annotation.js
@@ -465,15 +465,17 @@ L.Annotation = L.Layer.extend({
                        });
                        this._map.addLayer(this._annotationMarker);
                }
-               var stringTwips = this._data.rectangle.match(/\d+/g);
-               var topLeftTwips = new L.Point(parseInt(stringTwips[0]), 
parseInt(stringTwips[1]));
-               var offset = new L.Point(parseInt(stringTwips[2]), 
parseInt(stringTwips[3]));
-               var bottomRightTwips = topLeftTwips.add(offset);
-               var bounds = new L.LatLngBounds(
-                       this._map._docLayer._twipsToLatLng(topLeftTwips, 
this._map.getZoom()),
-                       this._map._docLayer._twipsToLatLng(bottomRightTwips, 
this._map.getZoom()));
-               this._annotationMarker.setLatLng(bounds.getSouthWest());
-               this._annotationMarker.on('dragstart drag dragend', 
this._onMarkerDrag, this);
+               if (this._data.rectangle != null) {
+                       var stringTwips = this._data.rectangle.match(/\d+/g);
+                       var topLeftTwips = new 
L.Point(parseInt(stringTwips[0]), parseInt(stringTwips[1]));
+                       var offset = new L.Point(parseInt(stringTwips[2]), 
parseInt(stringTwips[3]));
+                       var bottomRightTwips = topLeftTwips.add(offset);
+                       var bounds = new L.LatLngBounds(
+                               
this._map._docLayer._twipsToLatLng(topLeftTwips, this._map.getZoom()),
+                               
this._map._docLayer._twipsToLatLng(bottomRightTwips, this._map.getZoom()));
+                       this._annotationMarker.setLatLng(bounds.getSouthWest());
+                       this._annotationMarker.on('dragstart drag dragend', 
this._onMarkerDrag, this);
+               }
        },
        _onMarkerDrag: function(event) {
                if (this._annotationMarker == null)
commit 8b133a76d3e6dd1cdd577328bdf3f377c9ed08ee
Author:     Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk>
AuthorDate: Mon Jun 29 14:30:32 2020 +0200
Commit:     Tomaž Vajngerl <qui...@gmail.com>
CommitDate: Mon Jun 29 20:34:36 2020 +0200

    Send the new position of the annotation when the marker is moved
    
    Change-Id: I5a81feb8308808e9221ed7f7f29ea7758d91c309
    Reviewed-on: https://gerrit.libreoffice.org/c/online/+/97410
    Tested-by: Jenkins
    Reviewed-by: Tomaž Vajngerl <qui...@gmail.com>

diff --git a/loleaflet/src/layer/marker/Annotation.js 
b/loleaflet/src/layer/marker/Annotation.js
index 730396ab9..8d80aec57 100644
--- a/loleaflet/src/layer/marker/Annotation.js
+++ b/loleaflet/src/layer/marker/Annotation.js
@@ -473,6 +473,33 @@ L.Annotation = L.Layer.extend({
                        this._map._docLayer._twipsToLatLng(topLeftTwips, 
this._map.getZoom()),
                        this._map._docLayer._twipsToLatLng(bottomRightTwips, 
this._map.getZoom()));
                this._annotationMarker.setLatLng(bounds.getSouthWest());
+               this._annotationMarker.on('dragstart drag dragend', 
this._onMarkerDrag, this);
+       },
+       _onMarkerDrag: function(event) {
+               if (this._annotationMarker == null)
+                       return;
+               if (event.type === 'dragend') {
+                       var rect = 
this._annotationMarker._icon.getBoundingClientRect();
+                       var pointTwip = this._map._docLayer._pixelsToTwips({x: 
rect.left, y: rect.top});
+                       this._sendAnnotationPositionChange(pointTwip);
+               }
+       },
+       _sendAnnotationPositionChange: function(newPosition) {
+               var comment = {
+                       Id: {
+                               type: 'string',
+                               value: this._data.id
+                       },
+                       PositionX: {
+                               type: 'int32',
+                               value: newPosition.x
+                       },
+                       PositionY: {
+                               type: 'int32',
+                               value: newPosition.y
+                       }
+               };
+               this._map.sendUnoCommand('.uno:EditAnnotation', comment);
        }
 });
 
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to