loleaflet/src/control/Control.Scroll.js | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-)
New commits: commit 0ca8e3b63946862dad47163e448fca84741421d2 Author: Dennis Francis <dennis.fran...@collabora.com> AuthorDate: Fri Feb 14 18:11:37 2020 +0530 Commit: Dennis Francis <dennis.fran...@collabora.com> CommitDate: Fri Feb 14 15:26:07 2020 +0100 Lets have Hammer pan listeners on scroll-container... and delegate the pan events to L.Map.TouchGesture's pan handlers. This solves the problem that if one starts to pan the sheet from near the right edge (where the vertical scroll div exists), no panning takes place. This is because the vertical scroll div is managed by custom jquery plugin and has a high z-index and mapPane is not an ancestor of it, so mapPane will not get the touch events even with event bubble-up. But its ancestor div 'scroll-container' still gets touch/move events and has the same size and location as that of mapPane. So we just need to register Hammer for pan events for scroll-container and delegate these events to the original pan handlers of mapPane without any change to the event coordinates. The scroll widget and the drag-rail still function as usual as they are succesors of scroll-container and they get all the events they need to handle. Change-Id: Ie4ffe07a0889c5710b2c6d09e4eb90f0671b5ad0 Reviewed-on: https://gerrit.libreoffice.org/c/online/+/88712 Reviewed-by: Michael Meeks <michael.me...@collabora.com> Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com> diff --git a/loleaflet/src/control/Control.Scroll.js b/loleaflet/src/control/Control.Scroll.js index 91da67f41..8988df9ea 100644 --- a/loleaflet/src/control/Control.Scroll.js +++ b/loleaflet/src/control/Control.Scroll.js @@ -3,7 +3,7 @@ * L.Control.Scroll handles scrollbars */ -/* global $ clearTimeout setTimeout */ +/* global $ clearTimeout setTimeout Hammer */ L.Control.Scroll = L.Control.extend({ onAdd: function (map) { @@ -62,6 +62,22 @@ L.Control.Scroll = L.Control.extend({ alwaysTriggerOffsets: false } }); + + if (!this._hammer && map.touchGesture) { + this._hammer = new Hammer(this._scrollContainer); + this._hammer.get('pan').set({ + direction: Hammer.DIRECTION_ALL + }); + + if (L.Browser.touch) { + L.DomEvent.on(this._scrollContainer, 'touchmove', L.DomEvent.preventDefault); + } + + var mapTouchGesture = map.touchGesture; + this._hammer.on('panstart', L.bind(mapTouchGesture._onPanStart, mapTouchGesture)); + this._hammer.on('pan', L.bind(mapTouchGesture._onPan, mapTouchGesture)); + this._hammer.on('panend', L.bind(mapTouchGesture._onPanEnd, mapTouchGesture)); + } }, _onCalcScroll: function (e) { _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits