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

Marco Cecchetti marco.cecchetti at collabora.com
Fri Dec 2 12:01:38 UTC 2016


 loleaflet/src/control/Control.Scroll.js |   15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

New commits:
commit e7822bb452ea985096c325ff73c8f59be18d70d2
Author: Marco Cecchetti <marco.cecchetti at collabora.com>
Date:   Thu Dec 1 21:00:37 2016 +0100

    loleaflet - calc: horizontal scrollbar not updated on doc width change
    
    Change-Id: I268ab65d0bf7a6794028e23e51012c11534d6f2f
    Reviewed-on: https://gerrit.libreoffice.org/31543
    Reviewed-by: pranavk <pranavk at collabora.co.uk>
    Tested-by: pranavk <pranavk at collabora.co.uk>

diff --git a/loleaflet/src/control/Control.Scroll.js b/loleaflet/src/control/Control.Scroll.js
index 3131440..40089a9 100644
--- a/loleaflet/src/control/Control.Scroll.js
+++ b/loleaflet/src/control/Control.Scroll.js
@@ -118,14 +118,25 @@ L.Control.Scroll = L.Control.extend({
 	},
 
 	_onUpdateSize: function (e) {
+		// we need to avoid precision issues in comparison (in the end values are pixels)
+		var prevDocWidth = Math.ceil(parseFloat(L.DomUtil.getStyle(this._mockDoc, 'width')));
+		var prevDocHeight = Math.ceil(parseFloat(L.DomUtil.getStyle(this._mockDoc, 'height')));
+		var newDocWidth = Math.ceil(e.x);
+		var newDocHeight = Math.ceil(e.y);
 		// for writer documents, ignore scroll while document size is being reduced
-		var prevDocY = parseFloat(L.DomUtil.getStyle(this._mockDoc, 'height'));
-		if (this._map.getDocType() === 'text' && e.y < prevDocY) {
+		if (this._map.getDocType() === 'text' && newDocHeight < prevDocHeight) {
 			this._ignoreScroll = true;
 		}
 
 		L.DomUtil.setStyle(this._mockDoc, 'width', e.x + 'px');
 		L.DomUtil.setStyle(this._mockDoc, 'height', e.y + 'px');
+
+		// custom scrollbar plugin checks automatically for content height changes but not for content width changes
+		// so we need to update scrollbars explicitly; moreover we want to avoid to have 'update' invoked twice
+		// in case prevDocHeight !== newDocHeight
+		if (prevDocWidth !== newDocWidth && prevDocHeight === newDocHeight) {
+			$('.scroll-container').mCustomScrollbar('update');
+		}
 	},
 
 	_onUpdateScrollOffset: function (e) {


More information about the Libreoffice-commits mailing list