summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Meeks <michael.meeks@collabora.com>2018-11-07 14:14:46 +0000
committerMichael Meeks <michael.meeks@collabora.com>2018-11-07 14:17:35 +0000
commit5ba1dec1f82fcb66e3b154fa0a507497a52a6714 (patch)
treef467e852ee74db8a1023a26bdba9142b0de978a9
parentadbcc28273da6511050ca37c3d5ee4c93ac3ba7f (diff)
Avoid synchronous re-layout of comments / red-lines on each modification.
Change-Id: I698c6d47a58cfab2096900e01d19c8f4d4693fc4
-rw-r--r--loleaflet/src/layer/AnnotationManager.js15
1 files changed, 14 insertions, 1 deletions
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);