diff --git a/source/class/qxl/datagrid/DataGrid.js b/source/class/qxl/datagrid/DataGrid.js index 9d1f930..0713238 100644 --- a/source/class/qxl/datagrid/DataGrid.js +++ b/source/class/qxl/datagrid/DataGrid.js @@ -207,6 +207,13 @@ qx.Class.define("qxl.datagrid.DataGrid", { * Event handler for changes in the data source's size */ __onDataSourceChangeSize() { + this.forceUpdate(); + }, + + /** + * Forces the grid to fully update it's display. Use sparingly. + */ + forceUpdate() { this.getQxObject("widgetPane").invalidateAll(); this.__sizeCalculator.invalidate(); this.updateWidgets(); diff --git a/source/class/qxl/datagrid/ui/WidgetPane.js b/source/class/qxl/datagrid/ui/WidgetPane.js index fc1d525..bc4cff7 100644 --- a/source/class/qxl/datagrid/ui/WidgetPane.js +++ b/source/class/qxl/datagrid/ui/WidgetPane.js @@ -274,7 +274,9 @@ qx.Class.define("qxl.datagrid.ui.WidgetPane", { if (child) { this.__widgetFactory.unbindWidget(child); child.setUserData("qxl.datagrid.cellData", null); - this._remove(child); + if (child.getLayoutParent() === this) { + this._remove(child); + } if (this.getShouldDiscardWidgets()) { this.__widgetFactory.disposeWidget(child); }