[Libreoffice-commits] online.git: loleaflet/src
Marco Cecchetti (via logerrit)
logerrit at kemper.freedesktop.org
Tue Aug 20 15:31:21 UTC 2019
loleaflet/src/map/handler/Map.TouchGesture.js | 20 +++++++++++++++++---
1 file changed, 17 insertions(+), 3 deletions(-)
New commits:
commit 93992872e18d4043075d2d01d2ba8e74dcb5e38d
Author: Marco Cecchetti <mrcekets at gmail.com>
AuthorDate: Mon Jul 1 20:07:54 2019 +0200
Commit: Henry Castro <hcastro at collabora.com>
CommitDate: Tue Aug 20 17:31:02 2019 +0200
loleaflet: pinch + pan issue: move in the opposite direction
When the user pans with 2 fingers the document is moved in the
opposite direction. So we store the initial center point and invert
the offset to achieve the correct behavior.
Change-Id: Ief63aa39f56c3b812a90b392ddedc4ba21d813e4
Reviewed-on: https://gerrit.libreoffice.org/77846
Reviewed-by: Henry Castro <hcastro at collabora.com>
Tested-by: Henry Castro <hcastro at collabora.com>
diff --git a/loleaflet/src/map/handler/Map.TouchGesture.js b/loleaflet/src/map/handler/Map.TouchGesture.js
index 01b564ddc..3171e2794 100644
--- a/loleaflet/src/map/handler/Map.TouchGesture.js
+++ b/loleaflet/src/map/handler/Map.TouchGesture.js
@@ -84,7 +84,8 @@ L.Map.TouchGesture = L.Handler.extend({
this._hammer.on('panstart', L.bind(this._onPanStart, this));
this._hammer.on('pan', L.bind(this._onPan, this));
this._hammer.on('panend', L.bind(this._onPanEnd, this));
- this._hammer.on('pinchstart pinchmove', L.bind(this._onPinch, this));
+ this._hammer.on('pinchstart', L.bind(this._onPinchStart, this));
+ this._hammer.on('pinchmove', L.bind(this._onPinch, this));
this._hammer.on('pinchend', L.bind(this._onPinchEnd, this));
this._hammer.on('tripletap', L.bind(this._onTripleTap, this));
if (window.ThisIsTheiOSApp)
@@ -99,7 +100,8 @@ L.Map.TouchGesture = L.Handler.extend({
this._hammer.off('panstart', L.bind(this._onPanStart, this));
this._hammer.off('pan', L.bind(this._onPan, this));
this._hammer.off('panend', L.bind(this._onPanEnd, this));
- this._hammer.off('pinchstart pinchmove', L.bind(this._onPinch, this));
+ this._hammer.off('pinchstart', L.bind(this._onPinchStart, this));
+ this._hammer.off('pinchmove', L.bind(this._onPinch, this));
this._hammer.off('pinchend', L.bind(this._onPinchEnd, this));
this._hammer.off('doubletap', L.bind(this._onDoubleTap, this));
this._hammer.off('tripletap', L.bind(this._onTripleTap, this));
@@ -325,9 +327,21 @@ L.Map.TouchGesture = L.Handler.extend({
}
},
+ _onPinchStart: function (e) {
+ if (this._map.getDocType() !== 'spreadsheet') {
+ this._pinchStartCenter = {x: e.center.x, y: e.center.y};
+ }
+ },
+
_onPinch: function (e) {
+ if (!this._pinchStartCenter)
+ return;
+
if (this._map.getDocType() !== 'spreadsheet') {
- this._center = this._map.mouseEventToLatLng({clientX: e.center.x, clientY: e.center.y});
+ // we need to invert the offset or the map is moved in the opposite direction
+ var offset = {x: e.center.x - this._pinchStartCenter.x, y: e.center.y - this._pinchStartCenter.y};
+ var center = {x: this._pinchStartCenter.x - offset.x, y: this._pinchStartCenter.y - offset.y};
+ this._center = this._map.mouseEventToLatLng({clientX: center.x, clientY: center.y});
this._zoom = this._map.getScaleZoom(e.scale);
L.Util.cancelAnimFrame(this._animRequest);
More information about the Libreoffice-commits
mailing list