diff options
author | Szymon Kłos <szymon.klos@collabora.com> | 2019-04-11 13:32:24 +0200 |
---|---|---|
committer | Szymon Kłos <szymon.klos@collabora.com> | 2019-04-17 16:28:55 +0200 |
commit | cff5791f2e410387212feac1305da7763f8ac90d (patch) | |
tree | 76d33bd501f8742f6f0df0a797b994946833edf1 | |
parent | 065d2487cc6d26ec7efbde6f1e1177616b0b7cd7 (diff) |
Prevent view from jumping on zoom in/out on mobile
Change-Id: I29262d518d61a4a06d66271033c958e56ff16a2b
Reviewed-on: https://gerrit.libreoffice.org/70592
Reviewed-by: Tor Lillqvist <tml@collabora.com>
Tested-by: Tor Lillqvist <tml@collabora.com>
(cherry picked from commit 42a739a7bc53f9992056de4e00db90a5e613c04c)
Reviewed-on: https://gerrit.libreoffice.org/70887
Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
Tested-by: Szymon Kłos <szymon.klos@collabora.com>
-rw-r--r-- | loleaflet/js/jquery.mCustomScrollbar.js | 27 | ||||
-rw-r--r-- | loleaflet/src/control/Control.Scroll.js | 5 |
2 files changed, 23 insertions, 9 deletions
diff --git a/loleaflet/js/jquery.mCustomScrollbar.js b/loleaflet/js/jquery.mCustomScrollbar.js index 9437406d2..14bf9d9a2 100644 --- a/loleaflet/js/jquery.mCustomScrollbar.js +++ b/loleaflet/js/jquery.mCustomScrollbar.js @@ -284,6 +284,11 @@ and dependencies (minified). */ updateOnContentResize:true, /* + prevent from updating view position after content resize to avoid jumping on mobile devices + values: boolean + */ + jumpOnContentResize:true, + /* auto-update scrollbars each time each image inside the element is fully loaded values: "auto", boolean */ @@ -561,31 +566,37 @@ and dependencies (minified). var to=[Math.abs(mCSB_container[0].offsetTop),Math.abs(mCSB_container[0].offsetLeft)]; if(o.axis!=="x"){ /* y/yx axis */ if(!d.overflowed[0]){ /* y scrolling is not required */ - _resetContentPosition.call(this); /* reset content position */ + if(o.advanced.jumpOnContentResize) + _resetContentPosition.call(this); /* reset content position */ if(o.axis==="y"){ _unbindEvents.call(this); - }else if(o.axis==="yx" && d.overflowed[1]){ + }else if(o.axis==="yx" && d.overflowed[1] && o.advanced.jumpOnContentResize){ _scrollTo($this,to[1].toString(),{dir:"x",dur:0,overwrite:"none"}); } - }else if(mCSB_dragger[0].height()>mCSB_dragger[0].parent().height()){ + }else if(mCSB_dragger[0].height()>mCSB_dragger[0].parent().height() + && o.advanced.jumpOnContentResize){ _resetContentPosition.call(this); /* reset content position */ }else{ /* y scrolling is required */ - _scrollTo($this,to[0].toString(),{dir:"y",dur:0,overwrite:"none"}); + if(o.advanced.jumpOnContentResize) + _scrollTo($this,to[0].toString(),{dir:"y",dur:0,overwrite:"none"}); d.contentReset.y=null; } } if(o.axis!=="y"){ /* x/yx axis */ if(!d.overflowed[1]){ /* x scrolling is not required */ - _resetContentPosition.call(this); /* reset content position */ + if(o.advanced.jumpOnContentResize) + _resetContentPosition.call(this); /* reset content position */ if(o.axis==="x"){ _unbindEvents.call(this); - }else if(o.axis==="yx" && d.overflowed[0]){ + }else if(o.axis==="yx" && d.overflowed[0] && o.advanced.jumpOnContentResize){ _scrollTo($this,to[0].toString(),{dir:"y",dur:0,overwrite:"none"}); } }else if(mCSB_dragger[1].width()>mCSB_dragger[1].parent().width()){ - _resetContentPosition.call(this); /* reset content position */ + if(o.advanced.jumpOnContentResize) + _resetContentPosition.call(this); /* reset content position */ }else{ /* x scrolling is required */ - _scrollTo($this,to[1].toString(),{dir:"x",dur:0,overwrite:"none"}); + if(o.advanced.jumpOnContentResize) + _scrollTo($this,to[1].toString(),{dir:"x",dur:0,overwrite:"none"}); d.contentReset.x=null; } } diff --git a/loleaflet/src/control/Control.Scroll.js b/loleaflet/src/control/Control.Scroll.js index 829ce18ab..ab3fc47c6 100644 --- a/loleaflet/src/control/Control.Scroll.js +++ b/loleaflet/src/control/Control.Scroll.js @@ -31,7 +31,10 @@ L.Control.Scroll = L.Control.extend({ axis: 'yx', theme: 'minimal-dark', scrollInertia: 0, - advanced:{autoExpandHorizontalScroll: true}, /* weird bug, it should be false */ + advanced:{ + autoExpandHorizontalScroll: true, /* weird bug, it should be false */ + jumpOnContentResize: false /* prevent from jumping on a mobile devices */ + }, callbacks:{ onScrollStart: function() { control._map.fire('closepopup'); |