[Libreoffice-commits] online.git: loleaflet/src

Henry Castro hcastro at collabora.com
Fri Mar 17 23:04:12 UTC 2017


 loleaflet/src/layer/AnnotationManager.js    |   25 ++++++++++++++-----------
 loleaflet/src/layer/tile/WriterTileLayer.js |    3 ++-
 2 files changed, 16 insertions(+), 12 deletions(-)

New commits:
commit 91649dc4b69313b3f8cf601c2c6228efa2ae8998
Author: Henry Castro <hcastro at collabora.com>
Date:   Fri Mar 17 19:03:26 2017 -0400

    loleaflet: remove line arrow to replace the text selection
    
    Change-Id: I20a85c65463930c3f60c47fc770b68d191887fda

diff --git a/loleaflet/src/layer/AnnotationManager.js b/loleaflet/src/layer/AnnotationManager.js
index cbe6dc9b..b1f3d955 100644
--- a/loleaflet/src/layer/AnnotationManager.js
+++ b/loleaflet/src/layer/AnnotationManager.js
@@ -13,7 +13,6 @@ L.AnnotationManager = L.Class.extend({
 		this._map = map;
 		this._items = [];
 		this._selected = {};
-		this._arrow = L.polyline([], {color: 'darkblue', weight: 1});
 		this._map.on('AnnotationCancel', this._onAnnotationCancel, this);
 		this._map.on('AnnotationClick', this._onAnnotationClick, this);
 		this._map.on('AnnotationSave', this._onAnnotationSave, this);
@@ -26,7 +25,6 @@ L.AnnotationManager = L.Class.extend({
 				this._map.removeLayer(this._items[key]);
 			}
 		}
-		this._map.removeLayer(this._arrow);
 		this._items = [];
 		this._selected = {};
 	},
@@ -89,7 +87,7 @@ L.AnnotationManager = L.Class.extend({
 
 	unselect: function () {
 		this._selected = {};
-		this._map.removeLayer(this._arrow);
+		this._map._docLayer._selections.clearLayers();
 		this.update();
 	},
 
@@ -103,16 +101,21 @@ L.AnnotationManager = L.Class.extend({
 
 	update: function () {
 		var topRight = this._map.project(this._map.options.maxBounds.getNorthEast());
-		var point0, point1, point2, point3;
+		var point, bounds;
 		this.layout();
 		if (this._selected.annotation) {
-			point0 = this._map._docLayer._twipsToPixels(this._selected.annotation._data.anchorPos.min);
-			point1 = L.point(point0.x, point0.y - this.options.offset);
-			point2 = L.point(topRight.x, point1.y);
-			point3 = L.point(topRight.x, point2.y + this.options.offset);
-			this._arrow.setLatLngs([this._map.unproject(point0), this._map.unproject(point1), this._map.unproject(point2), this._map.unproject(point3)]);
-			this._map.addLayer(this._arrow);
-			this._selected.annotation.setLatLng(this._map.unproject(point3));
+			point = this._map._docLayer._twipsToPixels(this._selected.annotation._data.anchorPos.min);
+			bounds = L.latLngBounds(this._map._docLayer._twipsToLatLng(this._selected.annotation._data.anchorPos.getBottomLeft()),
+				this._map._docLayer._twipsToLatLng(this._selected.annotation._data.anchorPos.getTopRight()));
+			this._map._docLayer._selections.clearLayers();
+			this._map._docLayer._selections.addLayer(L.rectangle(bounds,{
+				pointerEvents: 'none',
+				fillColor: '#43ACE8',
+				fillOpacity: 0.25,
+				weight: 2,
+				opacity: 0.25
+			}));
+			this._selected.annotation.setLatLng(this._map.unproject(L.point(topRight.x, point.y)));
 		}
 	},
 
diff --git a/loleaflet/src/layer/tile/WriterTileLayer.js b/loleaflet/src/layer/tile/WriterTileLayer.js
index 6c9ac2d3..3cf193a5 100644
--- a/loleaflet/src/layer/tile/WriterTileLayer.js
+++ b/loleaflet/src/layer/tile/WriterTileLayer.js
@@ -7,7 +7,8 @@ L.WriterTileLayer = L.TileLayer.extend({
 
 	newAnnotation: function (comment) {
 		if (!comment.anchorPos && this._isCursorVisible) {
-			comment.anchorPos = this._latLngToTwips(this._visibleCursor.getNorthWest());
+			comment.anchorPos = L.bounds(this._latLngToTwips(this._visibleCursor.getSouthWest()),
+				this._latLngToTwips(this._visibleCursor.getNorthEast()));
 		}
 		if (comment.anchorPos) {
 			this._annotations.add(comment, true);


More information about the Libreoffice-commits mailing list