Repository: flex-tlf Updated Branches: refs/heads/develop 47ea3543e -> 1e0722fa2
Better handling of inserting table rows with merged cells. Project: http://git-wip-us.apache.org/repos/asf/flex-tlf/repo Commit: http://git-wip-us.apache.org/repos/asf/flex-tlf/commit/1e0722fa Tree: http://git-wip-us.apache.org/repos/asf/flex-tlf/tree/1e0722fa Diff: http://git-wip-us.apache.org/repos/asf/flex-tlf/diff/1e0722fa Branch: refs/heads/develop Commit: 1e0722fa2e254399074408cb04b94c163fc37d01 Parents: 47ea354 Author: Harbs <[email protected]> Authored: Sun Nov 30 12:17:30 2014 +0200 Committer: Harbs <[email protected]> Committed: Sun Nov 30 12:17:30 2014 +0200 ---------------------------------------------------------------------- .../flashx/textLayout/elements/TableElement.as | 23 ++++++++++++-------- 1 file changed, 14 insertions(+), 9 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/flex-tlf/blob/1e0722fa/textLayout/src/flashx/textLayout/elements/TableElement.as ---------------------------------------------------------------------- diff --git a/textLayout/src/flashx/textLayout/elements/TableElement.as b/textLayout/src/flashx/textLayout/elements/TableElement.as index beba4e7..6f230c0 100644 --- a/textLayout/src/flashx/textLayout/elements/TableElement.as +++ b/textLayout/src/flashx/textLayout/elements/TableElement.as @@ -517,7 +517,6 @@ package flashx.textLayout.elements row.composedHeight = row.computedFormat.minCellHeight; row.isMaxHeight = row.computedFormat.minCellHeight == row.computedFormat.maxCellHeight; - var blockedCoords:Vector.<CellCoords> = getBlockedCoords(idx); var cellIdx:int = getCellIndex(idx,0); if(cellIdx < 0) cellIdx = numChildren; @@ -526,20 +525,26 @@ package flashx.textLayout.elements if (cells==null) cells = []; - // create more cells - while(cells.length < numColumns){ + var cell:TableCellElement; + // create more cells while tracking occupied columns of merged cells + var occupiedColumns:int = 0; + for each(cell in cells) + occupiedColumns += cell.columnSpan; + + while(occupiedColumns < numColumns) + { cells.push(new TableCellElement()); + occupiedColumns++; } - for each(var cell:TableCellElement in cells){ - while(blockedCoords.length && blockedCoords[0].column == colIdx){ - colIdx++; - blockedCoords.shift(); - } - if(colIdx < numColumns){ + for each(cell in cells) + { + if(colIdx < numColumns) + { addChildAt(cellIdx++,cell); cell.damage(); } + colIdx += (cell.columnSpan-1); } return true; }
