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