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

Marco Cecchetti (via logerrit) logerrit at kemper.freedesktop.org
Tue Dec 3 11:57:31 UTC 2019


 loleaflet/src/control/Control.LokDialog.js |   37 ++++++++++++++++++++++++++---
 loleaflet/src/map/Map.js                   |    7 +++--
 2 files changed, 38 insertions(+), 6 deletions(-)

New commits:
commit f1776b92670e3143ede418c0f2b46ec9819b68bd
Author:     Marco Cecchetti <marco.cecchetti at collabora.com>
AuthorDate: Mon Dec 2 17:18:19 2019 +0100
Commit:     Marco Cecchetti <marco.cecchetti at collabora.com>
CommitDate: Tue Dec 3 12:57:11 2019 +0100

    loleaflet: tunneled formula bar partially hidden by side-panel
    
    Change-Id: I5ae3422ae33035d0bb6ffb1f6c75d659b4789932
    Reviewed-on: https://gerrit.libreoffice.org/84332
    Reviewed-by: Marco Cecchetti <marco.cecchetti at collabora.com>
    Tested-by: Marco Cecchetti <marco.cecchetti at collabora.com>

diff --git a/loleaflet/src/control/Control.LokDialog.js b/loleaflet/src/control/Control.LokDialog.js
index 857a4407c..3614342c1 100644
--- a/loleaflet/src/control/Control.LokDialog.js
+++ b/loleaflet/src/control/Control.LokDialog.js
@@ -992,9 +992,19 @@ L.Control.LokDialog = L.Control.extend({
 				that._dialogs[parentId].isPainting = false;
 			}
 
-			if (isCalcInputBar && container && that._calcInputBar.width !== container.clientWidth) {
-				console.log('_paintDialog: container width: ' + container.clientWidth + ', _calcInputBar width: ' + that._calcInputBar.width);
-				that._map._socket.sendMessage('resizewindow ' + parentId + ' size=' + container.clientWidth + ',' + that._calcInputBar.height);
+			if (isCalcInputBar && container) {
+				var deckOffset = 0;
+				if (that._currentDeck) {
+					var sidebar = L.DomUtil.get(that._currentDeck.strId);
+					if (sidebar) {
+						deckOffset = sidebar.width;
+					}
+				}
+				var correctWidth = container.clientWidth - deckOffset;
+				if (that._calcInputBar.width !== correctWidth) {
+					console.log('_paintDialog: correct width: ' + correctWidth + ', _calcInputBar width: ' + that._calcInputBar.width);
+					that._map._socket.sendMessage('resizewindow ' + parentId + ' size=' + correctWidth + ',' + that._calcInputBar.height);
+				}
 			}
 		};
 		img.src = imgData;
@@ -1040,8 +1050,10 @@ L.Control.LokDialog = L.Control.extend({
 			// Add extra space for scrollbar only when visible
 			width = width + 15;
 		}
+		var deckOffset = 0;
 		var sidebar = L.DomUtil.get(strId);
 		if (sidebar) {
+			deckOffset = width === 0 ? sidebar.width : -width;
 			sidebar.width = width;
 			if (sidebar.style)
 				sidebar.style.width = width.toString() + 'px';
@@ -1052,6 +1064,7 @@ L.Control.LokDialog = L.Control.extend({
 		if (spreadsheetRowColumnFrame)
 			spreadsheetRowColumnFrame.style.right = width.toString() + 'px';
 
+		this._adjustCalcInputBar(deckOffset);
 		// If we didn't have the focus, don't steal it form the editor.
 		if ($('#' + this._currentDeck.strId + '-cursor').css('display') === 'none') {
 			this._map.fire('editorgotfocus');
@@ -1059,6 +1072,24 @@ L.Control.LokDialog = L.Control.extend({
 		}
 	},
 
+	_adjustCalcInputBar: function(offset) {
+		if (this._calcInputBar && !this._calcInputBar.isPainting && offset !== 0) {
+			var id = this._calcInputBar.id;
+			var calcInputbar = L.DomUtil.get('calc-inputbar');
+			if (calcInputbar) {
+				var calcInputbarContainer = calcInputbar.children[0];
+				if (calcInputbarContainer) {
+					var width = calcInputbarContainer.clientWidth + offset;
+					var height = calcInputbarContainer.clientHeight;
+					if (width !== 0 && height !== 0) {
+						console.log('_adjustCalcInputBar: width: ' + width + ', height: ' + height);
+						this._map._socket.sendMessage('resizewindow ' + id + ' size=' + width + ',' + height);
+					}
+				}
+			}
+		}
+	},
+
 	_onDialogChildClose: function(dialogId) {
 		$('#' + this._toStrId(dialogId) + '-floating').remove();
 		if (!this._isSidebar(dialogId) && !this._isCalcInputBar(dialogId)) {
diff --git a/loleaflet/src/map/Map.js b/loleaflet/src/map/Map.js
index b279c1d8a..ffde80719 100644
--- a/loleaflet/src/map/Map.js
+++ b/loleaflet/src/map/Map.js
@@ -1093,13 +1093,14 @@ L.Map = L.Evented.extend({
 		L.Util.cancelAnimFrame(this._resizeRequest);
 		this._resizeRequest = L.Util.requestAnimFrame(
 			function () { this.invalidateSize({debounceMoveend: true}); }, this, false, this._container);
+		var deckOffset = 0;
 		var sidebarpanel = L.DomUtil.get('sidebar-panel');
 		if (sidebarpanel) {
 			var sidebar = sidebarpanel.children[0];
 			if (sidebar) {
 				sidebar.height = this._container.clientHeight - 10;
 				sidebar.style.height = sidebar.height + 'px';
-
+				deckOffset = sidebar.width;
 				// Fire the resize event to propagate the size change to WSD.
 				// .trigger isn't working, so doing it manually.
 				var event;
@@ -1126,9 +1127,9 @@ L.Map = L.Evented.extend({
 			if (calcInputbar) {
 				var calcInputbarContainer = calcInputbar.children[0];
 				if (calcInputbarContainer) {
-					var width = calcInputbarContainer.clientWidth;
+					var width = calcInputbarContainer.clientWidth - deckOffset;
 					var height = calcInputbarContainer.clientHeight;
-					if (width !== 0 && height !== 0) {
+					if (width > 0 && height > 0) {
 						console.log('_onResize: container width: ' + width + ', container height: ' + height + ', _calcInputBar width: ' + this.dialog._calcInputBar.width);
 						this._socket.sendMessage('resizewindow ' + id + ' size=' + width + ',' + height);
 					}


More information about the Libreoffice-commits mailing list