loleaflet/src/control/Control.LokDialog.js | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-)
New commits: commit ebfa3f82fac2922a71c61eefd006c9a0f3c2d98f Author: Ashod Nakashian <ashod.nakash...@collabora.co.uk> AuthorDate: Sat Mar 28 15:45:01 2020 -0400 Commit: Ashod Nakashian <ashnak...@gmail.com> CommitDate: Fri Apr 17 02:34:12 2020 +0200 leaflet: refactor _launchCalcInputBar() Preparing to avoid re-creating the input-bar on every update message. This will not just avoid flicker and unnecessary CPU utilization, but it will make Cypress tests more reliable, since destroying an HTML element can fail tests, even if they are created right after (it becomes a matter of random timing whether a test that checks the presence of such an element passes or fails). Change-Id: I8ff887578ebd719b05bb62059d3f0a0bbb929898 Reviewed-on: https://gerrit.libreoffice.org/c/online/+/91538 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com> Reviewed-by: Ashod Nakashian <ashnak...@gmail.com> diff --git a/loleaflet/src/control/Control.LokDialog.js b/loleaflet/src/control/Control.LokDialog.js index c4326dc41..00abd0925 100644 --- a/loleaflet/src/control/Control.LokDialog.js +++ b/loleaflet/src/control/Control.LokDialog.js @@ -708,12 +708,21 @@ L.Control.LokDialog = L.Control.extend({ }, _launchCalcInputBar: function(id, width, height) { - console.log('_launchCalcInputBar: start: id: ' + id + ', width: ' + width); + console.log('_launchCalcInputBar: start: id: ' + id + ', width: ' + width + ', height: ' + height); + if (this._calcInputBar) { + this._adjustCalcInputBarHeight(id, height); + } + + this._createCalcInputbar(id, width, height); + console.log('_launchCalcInputBar: end'); + }, + + _adjustCalcInputBarHeight: function(id, height) { if (this._calcInputBar) { var oldHeight = this._calcInputBar.height; var delta = height - oldHeight; - this._onCalcInputBarClose(this._calcInputBar.id); if (delta !== 0) { + console.log('_adjustCalcInputBarHeight: start: id: ' + id + ', height: ' + oldHeight + ' -> ' + height); var documentContainer = L.DomUtil.get('document-container'); if (documentContainer) { var top = documentContainer.offsetTop; @@ -754,9 +763,13 @@ L.Control.LokDialog = L.Control.extend({ } } $('.funcwizard').css('top', $('#spreadsheet-row-column-frame').css('top')); + console.log('_adjustCalcInputBarHeight: end'); } } + }, + _createCalcInputbar: function(id, width, height) { + console.log('_createCalcInputBar: start: id: ' + id + ', width: ' + width + ', height: ' + height); var strId = this._toStrId(id); $('#calc-inputbar-wrapper').css({display: 'block'}); @@ -820,11 +833,11 @@ L.Control.LokDialog = L.Control.extend({ this._setupCalcInputBarGestures(id, handles, startHandle, endHandle); this._calcInputBar = this._dialogs[id]; - console.log('_launchCalcInputBar: end'); + console.log('_createCalcInputBar: end'); }, _launchSidebar: function(id, width, height) { - + console.log('_launchSidebar: start: id: ' + id + ', width: ' + width + ', height: ' + height); if ((window.mode.isMobile() || window.mode.isTablet()) && this._map._permission != 'edit') return; @@ -1339,7 +1352,7 @@ L.Control.LokDialog = L.Control.extend({ if (parentId in that._dialogs) { // We might have closed the dialog by the time we render. that._dialogs[parentId].isPainting = false; - if (!that._isSidebar(parentId) && !that.isCalcInputBar(parentId)) + if (!that._isSidebar(parentId) && !isCalcInputBar) that._map.fire('changefocuswidget', {winId: parentId, dialog: that}); } }; @@ -1403,7 +1416,7 @@ L.Control.LokDialog = L.Control.extend({ if (spreadsheetRowColumnFrame) spreadsheetRowColumnFrame.style.right = width.toString() + 'px'; - this._adjustCalcInputBar(deckOffset); + this._resizeCalcInputBar(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') { @@ -1414,7 +1427,7 @@ L.Control.LokDialog = L.Control.extend({ } }, - _adjustCalcInputBar: function(offset) { + _resizeCalcInputBar: function(offset) { if (this._calcInputBar && !this._calcInputBar.isPainting && offset !== 0) { var id = this._calcInputBar.id; var calcInputbar = L.DomUtil.get('calc-inputbar'); @@ -1424,7 +1437,7 @@ L.Control.LokDialog = L.Control.extend({ var width = calcInputbarContainer.clientWidth + offset; var height = calcInputbarContainer.clientHeight; if (width !== 0 && height !== 0) { - console.log('_adjustCalcInputBar: width: ' + width + ', height: ' + height); + console.log('_resizeCalcInputBar: id: ' + id + ', width: ' + width + ', height: ' + height); this._map._socket.sendMessage('resizewindow ' + id + ' size=' + width + ',' + height); } } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits