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

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Wed Nov 7 14:17:59 UTC 2018


 loleaflet/src/layer/AnnotationManager.js |   15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

New commits:
commit 5ba1dec1f82fcb66e3b154fa0a507497a52a6714
Author:     Michael Meeks <michael.meeks at collabora.com>
AuthorDate: Wed Nov 7 14:14:46 2018 +0000
Commit:     Michael Meeks <michael.meeks at collabora.com>
CommitDate: Wed Nov 7 14:17:35 2018 +0000

    Avoid synchronous re-layout of comments / red-lines on each modification.
    
    Change-Id: I698c6d47a58cfab2096900e01d19c8f4d4693fc4

diff --git a/loleaflet/src/layer/AnnotationManager.js b/loleaflet/src/layer/AnnotationManager.js
index 56579ccd2..6927eb32e 100644
--- a/loleaflet/src/layer/AnnotationManager.js
+++ b/loleaflet/src/layer/AnnotationManager.js
@@ -328,7 +328,7 @@ L.AnnotationManager = L.Class.extend({
 		}
 	},
 
-	layout: function (zoom) {
+	doLayout: function (zoom) {
 		var docRight = this._map.project(this._map.options.docBounds.getNorthEast());
 		var topRight = docRight.add(L.point(this.options.marginX, this.options.marginY));
 		var latlng, layoutBounds, point, idx;
@@ -414,6 +414,19 @@ L.AnnotationManager = L.Class.extend({
 		}
 	},
 
+	layout: function (zoom) {
+		if (zoom)
+			this.doLayout(zoom);
+		else if (!this._layoutTimer) {
+			var me = this;
+			me._layoutTimer = setTimeout(function() {
+				delete me._layoutTimer;
+				me.doLayout(zoom);
+			}, 250 /* ms */);
+		} // else - avoid excessive re-layout
+
+	},
+
 	add: function (comment) {
 		var annotation = L.annotation(this._map._docLayer._twipsToLatLng(comment.anchorPos.getTopRight()), comment,
 			comment.id === 'new' ? {noMenu: true} : {}).addTo(this._map);


More information about the Libreoffice-commits mailing list