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