From 3ff35d2a016b73f915724d1e83ec939e9f7110f6 Mon Sep 17 00:00:00 2001 From: Josh Tynjala Date: Thu, 11 Apr 2024 14:09:38 -0700 Subject: [PATCH] GridView, TreeGridView: better column header lookup Was previously looking up in an array of layout items, but that's less likely to be up to date compared to the map --- src/feathers/controls/GridView.hx | 12 ++++++------ src/feathers/controls/TreeGridView.hx | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/feathers/controls/GridView.hx b/src/feathers/controls/GridView.hx index 8c4208a0..a2e62a44 100644 --- a/src/feathers/controls/GridView.hx +++ b/src/feathers/controls/GridView.hx @@ -3182,7 +3182,7 @@ class GridView extends BaseScrollContainer implements IIndexSelector implements var column = this._columns.get(this._resizingHeaderIndex); // clear the explicit width because the user resized it column.width = null; - var headerRenderer = this._headerLayoutItems[this._resizingHeaderIndex]; + var headerRenderer = this.dataToHeaderRenderer.get(column); var column = this._columns.get(this._resizingHeaderIndex); var minX = this._headerContainer.x + headerRenderer.x + column.minWidth; var maxX = this.actualWidth - this.rightViewPortOffset; @@ -3204,7 +3204,7 @@ class GridView extends BaseScrollContainer implements IIndexSelector implements // however, we're not setting the width property on the // DataGridColumn because we want them to be able to resize // later if the whole DataGrid resizes. - headerRenderer = this._headerLayoutItems[i]; + headerRenderer = this.dataToHeaderRenderer.get(currentColumn); this._customColumnWidths[i] = headerRenderer.width; totalMinWidth += headerRenderer.width; } else { @@ -3213,7 +3213,7 @@ class GridView extends BaseScrollContainer implements IIndexSelector implements continue; } totalMinWidth += currentColumn.minWidth; - headerRenderer = this._headerLayoutItems[i]; + headerRenderer = this.dataToHeaderRenderer.get(currentColumn); var columnWidth = headerRenderer.width; totalWidthAfter += columnWidth; this._customColumnWidths[i] = columnWidth; @@ -3256,9 +3256,9 @@ class GridView extends BaseScrollContainer implements IIndexSelector implements var i = indices.length - 1; while (i >= 0) { var index = indices[i]; - var headerRenderer = this._headerLayoutItems[index]; - var columnWidth = headerRenderer.width; var column = this._columns.get(index); + var headerRenderer = this.dataToHeaderRenderer.get(column); + var columnWidth = headerRenderer.width; var percent = columnWidth / totalWidthOfIndices; var offset = widthToDistribute * percent; var newWidth = this._customColumnWidths[index] + offset; @@ -3289,8 +3289,8 @@ class GridView extends BaseScrollContainer implements IIndexSelector implements if (this._currentColumnResizeSkin == null) { return; } - var headerRenderer = this._headerLayoutItems[this._resizingHeaderIndex]; var column = this._columns.get(this._resizingHeaderIndex); + var headerRenderer = this.dataToHeaderRenderer.get(column); var minX = this._headerContainer.x + headerRenderer.x + column.minWidth; var maxX = this.actualWidth - this.rightViewPortOffset; var originalX = this._headerContainer.x + headerRenderer.x + headerRenderer.width; diff --git a/src/feathers/controls/TreeGridView.hx b/src/feathers/controls/TreeGridView.hx index 2c624cbf..4f47ea3b 100644 --- a/src/feathers/controls/TreeGridView.hx +++ b/src/feathers/controls/TreeGridView.hx @@ -2891,7 +2891,7 @@ class TreeGridView extends BaseScrollContainer implements IDataSelector var column = this._columns.get(this._resizingHeaderIndex); // clear the explicit width because the user resized it column.width = null; - var headerRenderer = this._headerLayoutItems[this._resizingHeaderIndex]; + var headerRenderer = this.dataToHeaderRenderer.get(column); var column = this._columns.get(this._resizingHeaderIndex); var minX = this._headerContainer.x + headerRenderer.x + column.minWidth; var maxX = this.actualWidth - this.rightViewPortOffset; @@ -2913,7 +2913,7 @@ class TreeGridView extends BaseScrollContainer implements IDataSelector // however, we're not setting the width property on the // DataGridColumn because we want them to be able to resize // later if the whole DataGrid resizes. - headerRenderer = this._headerLayoutItems[i]; + headerRenderer = this.dataToHeaderRenderer.get(currentColumn); this._customColumnWidths[i] = headerRenderer.width; totalMinWidth += headerRenderer.width; } else { @@ -2922,7 +2922,7 @@ class TreeGridView extends BaseScrollContainer implements IDataSelector continue; } totalMinWidth += currentColumn.minWidth; - headerRenderer = this._headerLayoutItems[i]; + headerRenderer = this.dataToHeaderRenderer.get(currentColumn); var columnWidth = headerRenderer.width; totalWidthAfter += columnWidth; this._customColumnWidths[i] = columnWidth; @@ -2965,9 +2965,9 @@ class TreeGridView extends BaseScrollContainer implements IDataSelector var i = indices.length - 1; while (i >= 0) { var index = indices[i]; - var headerRenderer = this._headerLayoutItems[index]; - var columnWidth = headerRenderer.width; var column = this._columns.get(index); + var headerRenderer = this.dataToHeaderRenderer.get(column); + var columnWidth = headerRenderer.width; var percent = columnWidth / totalWidthOfIndices; var offset = widthToDistribute * percent; var newWidth = this._customColumnWidths[index] + offset; @@ -2998,8 +2998,8 @@ class TreeGridView extends BaseScrollContainer implements IDataSelector if (this._currentColumnResizeSkin == null) { return; } - var headerRenderer = this._headerLayoutItems[this._resizingHeaderIndex]; var column = this._columns.get(this._resizingHeaderIndex); + var headerRenderer = this.dataToHeaderRenderer.get(column); var minX = this._headerContainer.x + headerRenderer.x + column.minWidth; var maxX = this.actualWidth - this.rightViewPortOffset; var originalX = this._headerContainer.x + headerRenderer.x + headerRenderer.width;