From 85c2db4507d82d5fce48068eeca69de54f2c475e Mon Sep 17 00:00:00 2001 From: Piotr Laszczkowski Date: Sat, 5 Jan 2019 01:07:16 +0100 Subject: [PATCH] Fixed: headers behaviour after disabling them in updateSettings. #4136 --- src/3rdparty/walkontable/src/viewport.js | 6 +++++- src/plugins/autoColumnSize/autoColumnSize.js | 10 +++++----- test/e2e/ColHeader.spec.js | 14 ++++++++++---- test/e2e/RowHeader.spec.js | 15 +++++++++++---- 4 files changed, 31 insertions(+), 14 deletions(-) diff --git a/src/3rdparty/walkontable/src/viewport.js b/src/3rdparty/walkontable/src/viewport.js index abd1d77b476..e3173ba33ae 100644 --- a/src/3rdparty/walkontable/src/viewport.js +++ b/src/3rdparty/walkontable/src/viewport.js @@ -189,7 +189,11 @@ class Viewport { * @returns {Number} */ getColumnHeaderHeight() { - if (isNaN(this.columnHeaderHeight)) { + const columnHeaders = this.instance.getSetting('columnHeaders'); + + if (!columnHeaders.length) { + this.columnHeaderHeight = 0; + } else if (isNaN(this.columnHeaderHeight)) { this.columnHeaderHeight = outerHeight(this.wot.wtTable.THEAD); } diff --git a/src/plugins/autoColumnSize/autoColumnSize.js b/src/plugins/autoColumnSize/autoColumnSize.js index 479977dbc32..ada050d8968 100644 --- a/src/plugins/autoColumnSize/autoColumnSize.js +++ b/src/plugins/autoColumnSize/autoColumnSize.js @@ -254,11 +254,11 @@ class AutoColumnSize extends BasePlugin { this.inProgress = false; // @TODO Should call once per render cycle, currently fired separately in different plugins - this.hot.view.wt.wtOverlays.adjustElementsSize(true); - // tmp - if (this.hot.view.wt.wtOverlays.leftOverlay.needFullRender) { - this.hot.view.wt.wtOverlays.leftOverlay.clone.draw(); - } + // this.hot.view.wt.wtOverlays.adjustElementsSize(true); + // // tmp + // if (this.hot.view.wt.wtOverlays.leftOverlay.needFullRender) { + // this.hot.view.wt.wtOverlays.leftOverlay.clone.draw(); + // } } }; diff --git a/test/e2e/ColHeader.spec.js b/test/e2e/ColHeader.spec.js index e6411e47bd3..90ff724b9d2 100644 --- a/test/e2e/ColHeader.spec.js +++ b/test/e2e/ColHeader.spec.js @@ -107,18 +107,24 @@ describe('ColHeader', () => { it('should hide columns headers after updateSettings', () => { const hot = handsontable({ - startCols: 5, + startCols: 100, + startRows: 100, + width: 250, + height: 200, colHeaders: true }); + let headers = getHtCore().find('thead th').length; - expect(getHtCore().find('thead th').length).toEqual(5); - expect(getTopClone().find('thead th').length).toEqual(5); + expect(headers).toBeGreaterThan(0); + expect(getTopClone().find('thead th').length).toEqual(headers); hot.updateSettings({ colHeaders: false }); - expect(getHtCore().find('thead th').length).toEqual(0); + headers = getHtCore().find('thead th').length; + + expect(headers).toEqual(0); expect(getTopClone().width()).toEqual(0); }); diff --git a/test/e2e/RowHeader.spec.js b/test/e2e/RowHeader.spec.js index 195362acbf0..88dd03254c3 100644 --- a/test/e2e/RowHeader.spec.js +++ b/test/e2e/RowHeader.spec.js @@ -68,18 +68,25 @@ describe('RowHeader', () => { it('should hide rows headers after updateSetting', () => { const hot = handsontable({ - startRows: 5, + startCols: 100, + startRows: 100, + width: 250, + height: 200, rowHeaders: true }); + let headers = getHtCore().find('tbody th').length; - expect(getHtCore().find('tbody th').length).toEqual(5); - expect(getLeftClone().find('tbody th').length).toEqual(5); + expect(headers).toBeGreaterThan(0); + expect(getLeftClone().find('tbody th').length).toEqual(headers); hot.updateSettings({ rowHeaders: false }); - expect(getHtCore().find('tbody th').length).toEqual(0); + headers = getHtCore().find('tbody th').length; + + expect(headers).toEqual(0); + expect(getLeftClone().width()).toEqual(0); }); it('should show rows headers after updateSettings', () => {