[Libreoffice-commits] online.git: Branch 'distro/collabora/collabora-online-2-1' - loleaflet/src

Pranav Kant pranavk at collabora.co.uk
Wed Apr 19 16:54:42 UTC 2017


 loleaflet/src/layer/AnnotationManager.js |   15 ++++++++++++---
 loleaflet/src/map/Map.js                 |    2 ++
 2 files changed, 14 insertions(+), 3 deletions(-)

New commits:
commit c62728d3a865c8d2f4e8d0fb4cecb21ee395b50f
Author: Pranav Kant <pranavk at collabora.co.uk>
Date:   Wed Apr 19 19:13:25 2017 +0530

    loleaflet: Select and deselect comment upon mouse click
    
    Make comment overlays clickable and when clicked select the
    corresponding annotation. Also deselect when clicked where there is no
    comment overlay.
    
    Change-Id: Id9236862eec86b7508978ad8fe803455e03adbe2
    (cherry picked from commit 4a8caa40e88561cfeb046c83da29b144c287016b)
    Reviewed-on: https://gerrit.libreoffice.org/36695
    Reviewed-by: Jan Holesovsky <kendy at collabora.com>
    Tested-by: Jan Holesovsky <kendy at collabora.com>

diff --git a/loleaflet/src/layer/AnnotationManager.js b/loleaflet/src/layer/AnnotationManager.js
index d29b2d46..b3f2d74c 100644
--- a/loleaflet/src/layer/AnnotationManager.js
+++ b/loleaflet/src/layer/AnnotationManager.js
@@ -47,20 +47,23 @@ L.AnnotationManager = L.Class.extend({
 
 	adjustComment: function(comment) {
 		var rectangles, color, viewId;
+		comment.trackchange = false;
+		rectangles = L.PolyUtil.rectanglesToPolygons(L.LOUtil.stringToRectangles(comment.textRange || comment.anchorPos), this._map._docLayer);
 		comment.anchorPos = L.LOUtil.stringToBounds(comment.anchorPos);
 		comment.anchorPix = this._map._docLayer._twipsToPixels(comment.anchorPos.min);
-		comment.trackchange = false;
-		rectangles = L.PolyUtil.rectanglesToPolygons(L.LOUtil.stringToRectangles(comment.textRange), this._map._docLayer);
 		viewId = this._map.getViewId(comment.author);
 		color = viewId >= 0 ? L.LOUtil.rgbToHex(this._map.getViewColor(viewId)) : '#43ACE8';
 		if (rectangles.length > 0) {
 			comment.textSelected = L.polygon(rectangles, {
-				pointerEvents: 'none',
+				interactive: true,
 				fillColor: color,
 				fillOpacity: 0.25,
 				weight: 2,
 				opacity: 0.25
 			});
+			comment.textSelected.on('click', function() {
+				this.selectById(comment.id);
+			}, this);
 		}
 	},
 
@@ -178,6 +181,12 @@ L.AnnotationManager = L.Class.extend({
 		}
 	},
 
+	selectById: function(commentId) {
+		var idx = this.getRootIndexOf(commentId);
+		this._selected = this._items[idx];
+		this.update();
+	},
+
 	update: function () {
 		if (this._selected) {
 			var point0, point1, point2;
diff --git a/loleaflet/src/map/Map.js b/loleaflet/src/map/Map.js
index c76d4393..af9f7233 100644
--- a/loleaflet/src/map/Map.js
+++ b/loleaflet/src/map/Map.js
@@ -979,6 +979,8 @@ L.Map = L.Evented.extend({
 		if (type === 'click' && this._permission === 'edit') {
 			this._textArea.blur();
 			this._textArea.focus();
+			if (this._docLayer && this._docLayer._annotations && this._docLayer._annotations.unselect)
+				this._docLayer._annotations.unselect();
 		}
 
 		// we need to keep track if we have entered/left the map


More information about the Libreoffice-commits mailing list