[Libreoffice-commits] online.git: loleaflet/src
Dennis Francis (via logerrit)
logerrit at kemper.freedesktop.org
Wed Aug 12 08:21:44 UTC 2020
loleaflet/src/layer/tile/CanvasTileLayer.js | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)
New commits:
commit 6da69a2584402eed292067a7205eb01a04df8b6e
Author: Dennis Francis <dennis.francis at collabora.com>
AuthorDate: Fri Aug 7 17:14:56 2020 +0530
Commit: Dennis Francis <dennis.francis at collabora.com>
CommitDate: Wed Aug 12 10:21:25 2020 +0200
loleaflet: mobile/tablet: do not use L.CanvasTilePainter's RAF-loop...
... because the hammerjs swipe handler already uses a
requestAnimationFrame loop to fire move/drag events. Using
L.CanvasTilePainter's own requestAnimationFrame loop to do the updates
in that case results in poor UX/performance.
Change-Id: I2e31fb190b62f57bcb0bd00bec8b7ff4b7119aa1
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/100482
Tested-by: Jenkins
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice at gmail.com>
Reviewed-by: Dennis Francis <dennis.francis at collabora.com>
diff --git a/loleaflet/src/layer/tile/CanvasTileLayer.js b/loleaflet/src/layer/tile/CanvasTileLayer.js
index 51941a73a..3da9ea82e 100644
--- a/loleaflet/src/layer/tile/CanvasTileLayer.js
+++ b/loleaflet/src/layer/tile/CanvasTileLayer.js
@@ -431,8 +431,18 @@ L.CanvasTileLayer = L.TileLayer.extend({
this._cypressHelperDiv = L.DomUtil.create('div', '', this._container);
}
- this._map.on('movestart', this._painter.startUpdates, this._painter);
- this._map.on('moveend', this._painter.stopUpdates, this._painter);
+ // For mobile/tablet the hammerjs swipe handler already uses a requestAnimationFrame to fire move/drag events
+ // Using L.CanvasTilePainter's own requestAnimationFrame loop to do the updates in that case does not perform well.
+ if (window.mode.isMobile() || window.mode.isTablet()) {
+ this._map.on('move', this._painter.update, this._painter);
+ this._map.on('moveend', function () {
+ setTimeout(this.update.bind(this), 200);
+ }, this._painter);
+ }
+ else {
+ this._map.on('movestart', this._painter.startUpdates, this._painter);
+ this._map.on('moveend', this._painter.stopUpdates, this._painter);
+ }
this._map.on('zoomend', this._painter.update, this._painter);
this._map.on('splitposchanged', this._painter.update, this._painter);
this._map.on('move', this._syncTilePanePos, this);
More information about the Libreoffice-commits
mailing list