loleaflet/src/core/LOUtil.js             |   16 ++++++++++++++++
 loleaflet/src/layer/AnnotationManager.js |   21 +++++++++++----------
 2 files changed, 27 insertions(+), 10 deletions(-)

New commits:
commit 7bf26378721ef6c63edd589f463db210e0efe59f
Author: Henry Castro <hcas...@collabora.com>
Date:   Sun Mar 19 23:16:34 2017 -0400

    loleaflet: use textRange property to select the text
    
    Change-Id: Ie396b199b33ab322a015ce77272430fcf83ef17b

diff --git a/loleaflet/src/core/LOUtil.js b/loleaflet/src/core/LOUtil.js
index 237edbe3..286f2fa4 100644
--- a/loleaflet/src/core/LOUtil.js
+++ b/loleaflet/src/core/LOUtil.js
@@ -62,5 +62,21 @@ L.LOUtil = {
                var topLeft = L.point(parseInt(numbers[0]), 
parseInt(numbers[1]));
                var bottomRight = topLeft.add(L.point(parseInt(numbers[2]), 
parseInt(numbers[3])));
                return L.bounds(topLeft, bottomRight);
+       },
+
+       stringToRectangles: function(strRect) {
+               var matches = strRect.match(/\d+/g);
+               var rectangles = [];
+               if (matches !== null) {
+                       for (var itMatch = 0; itMatch < matches.length; itMatch 
+= 4) {
+                               var topLeft = 
L.point(parseInt(matches[itMatch]), parseInt(matches[itMatch + 1]));
+                               var size = L.point(parseInt(matches[itMatch + 
2]), parseInt(matches[itMatch + 3]));
+                               var topRight = topLeft.add(L.point(size.x, 0));
+                               var bottomLeft = topLeft.add(L.point(0, 
size.y));
+                               var bottomRight = topLeft.add(size);
+                               rectangles.push([bottomLeft, bottomRight, 
topLeft, topRight]);
+                       }
+               }
+               return rectangles;
        }
 };
diff --git a/loleaflet/src/layer/AnnotationManager.js 
b/loleaflet/src/layer/AnnotationManager.js
index bca8e15d..a21bf121 100644
--- a/loleaflet/src/layer/AnnotationManager.js
+++ b/loleaflet/src/layer/AnnotationManager.js
@@ -101,20 +101,21 @@ L.AnnotationManager = L.Class.extend({
 
        update: function () {
                var topRight = 
this._map.project(this._map.options.maxBounds.getNorthEast());
-               var point, bounds;
+               var point, rectangles;
                this.layout();
                if (this._selected.annotation) {
                        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
-                       }));
+                       rectangles = 
L.PolyUtil.rectanglesToPolygons(L.LOUtil.stringToRectangles(this._selected.annotation._data.textRange),
 this._map._docLayer);
+                       if (rectangles.length > 0) {
+                               
this._map._docLayer._selections.addLayer(L.polygon(rectangles, {
+                                       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)));
                }
        },
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to