diff options
author | Michael Meeks <michael.meeks@collabora.com> | 2018-11-07 14:14:46 +0000 |
---|---|---|
committer | Michael Meeks <michael.meeks@collabora.com> | 2018-11-07 14:17:35 +0000 |
commit | 5ba1dec1f82fcb66e3b154fa0a507497a52a6714 (patch) | |
tree | f467e852ee74db8a1023a26bdba9142b0de978a9 | |
parent | adbcc28273da6511050ca37c3d5ee4c93ac3ba7f (diff) |
Avoid synchronous re-layout of comments / red-lines on each modification.
Change-Id: I698c6d47a58cfab2096900e01d19c8f4d4693fc4
-rw-r--r-- | loleaflet/src/layer/AnnotationManager.js | 15 |
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); |