loleaflet/css/spreadsheet.css | 3 ++- loleaflet/src/control/Control.LokDialog.js | 24 ++++++++++++++++++++++++ loleaflet/src/control/Control.Tabs.js | 1 + 3 files changed, 27 insertions(+), 1 deletion(-)
New commits: commit 3c4e3d8c4362de777d9dde2362211b4468e2f4dd Author: Dennis Francis <dennis.fran...@collabora.com> AuthorDate: Tue Mar 3 21:17:05 2020 +0530 Commit: Michael Meeks <michael.me...@collabora.com> CommitDate: Tue Mar 10 10:37:02 2020 +0100 Do not let sidebar cover calc-tabs-bar (partially) In desktop-browser-online-calc, when the sidebar is shown, the tabs/sheets bar is partly covered by it. This is a problem when there are many sheets in the calc document because it is impossible to switch to last few sheets because sidebar covers those entries in the tabs-bar. This patch adjusts the tab-bar container's width according to sidebar width changes just like how formula-input canvas width is adjusted. This also includes some css adjustments neccessary to hide the ugly browser induced vertical-scrollbar for the child of tabs container when adjusting the width of the container. Change-Id: Iea3a658926d6f563a970bb9b6da9807818d36c26 Reviewed-on: https://gerrit.libreoffice.org/c/online/+/89897 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com> Reviewed-by: Henry Castro <hcas...@collabora.com> Reviewed-by: Michael Meeks <michael.me...@collabora.com> diff --git a/loleaflet/css/spreadsheet.css b/loleaflet/css/spreadsheet.css index 35b8863a7..bf70c9663 100644 --- a/loleaflet/css/spreadsheet.css +++ b/loleaflet/css/spreadsheet.css @@ -35,7 +35,8 @@ width: 100%; height: 100%; overflow: auto; - padding-bottom: 20px; /* to hide the scroolbar */ + padding-bottom: 20px; /* to hide the horizontal scrollbar */ + padding-right: 5px; /* to hide the vertical scrollbar */ margin-left: 6px; } diff --git a/loleaflet/src/control/Control.LokDialog.js b/loleaflet/src/control/Control.LokDialog.js index d106b1504..a58766c21 100644 --- a/loleaflet/src/control/Control.LokDialog.js +++ b/loleaflet/src/control/Control.LokDialog.js @@ -1368,6 +1368,7 @@ L.Control.LokDialog = L.Control.extend({ spreadsheetRowColumnFrame.style.right = width.toString() + 'px'; this._adjustCalcInputBar(deckOffset); + this._adjustTabsBar(width); // If we didn't have the focus, don't steal it form the editor. if ($('#' + this._currentDeck.strId + '-cursor').css('display') === 'none') { if (this._map.editorHasFocus()) { @@ -1395,6 +1396,29 @@ L.Control.LokDialog = L.Control.extend({ } }, + _adjustTabsBar: function(deckNewWidth) { + + if (this._map.getDocType() !== 'spreadsheet') { + return; + } + + // This is called only if sidebar is made visible or hidden, so no need of + // special-casing for mobile where that never happens. + // In the case of tablets, when sidebar is made visible/hidden the below adjustments + // will work correctly like in desktop-online (verified with chrome-tablet emulator). + + var tabsContainer = L.DomUtil.get('spreadsheet-tabs-container-id'); + if (!tabsContainer) { + return; + } + + var docWidth = L.DomUtil.get('spreadsheet-toolbar').getBoundingClientRect().width; + var tabsContainerLeft = tabsContainer.getBoundingClientRect().left; + var deckMargin = (deckNewWidth === 0) ? 0 : 10; + + tabsContainer.style.width = (docWidth - tabsContainerLeft - deckNewWidth - deckMargin) + 'px'; + }, + _onDialogChildClose: function(dialogId) { $('#' + this._toStrId(dialogId) + '-floating').remove(); if (!this._isSidebar(dialogId) && !this._isCalcInputBar(dialogId)) { diff --git a/loleaflet/src/control/Control.Tabs.js b/loleaflet/src/control/Control.Tabs.js index 0997d7dd9..8c56372da 100644 --- a/loleaflet/src/control/Control.Tabs.js +++ b/loleaflet/src/control/Control.Tabs.js @@ -42,6 +42,7 @@ L.Control.Tabs = L.Control.extend({ var map = this._map; var docContainer = map.options.documentContainer; this._tabsCont = L.DomUtil.create('div', 'spreadsheet-tabs-container', docContainer.parentElement); + this._tabsCont.id = 'spreadsheet-tabs-container-id'; this._menuItem = { 'insertsheetbefore': {name: _('Insert sheet before this'), _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits