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

Henry Castro (via logerrit) logerrit at kemper.freedesktop.org
Mon Aug 19 15:38:50 UTC 2019


 loleaflet/src/layer/vector/Path.Drag.js |   27 ++++++++++++++++++---------
 1 file changed, 18 insertions(+), 9 deletions(-)

New commits:
commit 515b8e62993be9a184d8de18e5dcaa44a7b4c07b
Author:     Henry Castro <hcastro at collabora.com>
AuthorDate: Thu Jun 27 16:38:32 2019 -0400
Commit:     Henry Castro <hcastro at collabora.com>
CommitDate: Mon Aug 19 17:38:31 2019 +0200

    loleaflet: mobile: enable manual dragging in L.Handler.PathDrag
    
    for touch devices, it is not necessary to add mouse event listeners
    
    Change-Id: Icc4ba5cacde47f79021d317af9b712ba17e84fd5
    Reviewed-on: https://gerrit.libreoffice.org/77738
    Reviewed-by: Henry Castro <hcastro at collabora.com>
    Tested-by: Henry Castro <hcastro at collabora.com>

diff --git a/loleaflet/src/layer/vector/Path.Drag.js b/loleaflet/src/layer/vector/Path.Drag.js
index b35c02b98..60e105388 100644
--- a/loleaflet/src/layer/vector/Path.Drag.js
+++ b/loleaflet/src/layer/vector/Path.Drag.js
@@ -89,8 +89,10 @@ L.Handler.PathDrag = L.Handler.extend(/** @lends  L.Path.Drag.prototype */ {
 			L.DomUtil.removeClass(this._path._path, L.Handler.PathDrag.DRAGGING_CLS);
 		}
 
-		L.DomEvent.off(document, 'mousemove touchmove', this._onDrag,    this);
-		L.DomEvent.off(document, 'mouseup touchend',    this._onDragEnd, this);
+		if (!this._path.options.manualDrag) {
+			L.DomEvent.off(document, 'mousemove touchmove', this._onDrag,    this);
+			L.DomEvent.off(document, 'mouseup touchend',    this._onDragEnd, this);
+		}
 	},
 
 	/**
@@ -115,9 +117,12 @@ L.Handler.PathDrag = L.Handler.extend(/** @lends  L.Path.Drag.prototype */ {
 		L.DomEvent.stop(evt.originalEvent);
 
 		L.DomUtil.addClass(this._path._renderer._container, 'leaflet-interactive');
-		L.DomEvent
-			.on(document, MOVE[eventType], this._onDrag,    this)
-			.on(document, END[eventType],  this._onDragEnd, this);
+
+		if (!this._path.options.manualDrag) {
+			L.DomEvent
+				.on(document, MOVE[eventType], this._onDrag,    this)
+				.on(document, END[eventType],  this._onDragEnd, this);
+		}
 
 		if (this._path._map.dragging.enabled()) {
 			// I guess it's required because mousdown gets simulated with a delay
@@ -140,6 +145,9 @@ L.Handler.PathDrag = L.Handler.extend(/** @lends  L.Path.Drag.prototype */ {
 	* @param  {L.MouseEvent} evt
 	*/
 	_onDrag: function(evt) {
+		if (!this._startPoint)
+			return;
+
 		L.DomEvent.stop(evt);
 
 		var first = (evt.touches && evt.touches.length >= 1 ? evt.touches[0] : evt);
@@ -223,8 +231,10 @@ L.Handler.PathDrag = L.Handler.extend(/** @lends  L.Path.Drag.prototype */ {
 			this._path._transform(null);
 		}
 
-		L.DomEvent.off(document, 'mousemove touchmove', this._onDrag,    this);
-		L.DomEvent.off(document, 'mouseup touchend',    this._onDragEnd, this);
+		if (!this._path.options.manualDrag) {
+			L.DomEvent.off(document, 'mousemove touchmove', this._onDrag,    this);
+			L.DomEvent.off(document, 'mouseup touchend',    this._onDragEnd, this);
+		}
 
 		this._restoreCoordGetters();
 
@@ -253,7 +263,7 @@ L.Handler.PathDrag = L.Handler.extend(/** @lends  L.Path.Drag.prototype */ {
 			this._path._map.dragging.enable();
 		}
 
-		if (!moved) {
+		if (!this._path.options.manualDrag && !moved) {
 			this._path._map._handleDOMEvent(this._mouseDown);
 			this._path._map._handleDOMEvent(evt)
 		}
@@ -400,5 +410,4 @@ var fnInitHook = function() {
 	}
 };
 
-L.Path.addInitHook(fnInitHook);
 L.SVGGroup.addInitHook(fnInitHook);


More information about the Libreoffice-commits mailing list