OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 1997 Martin Jones (mjones@kde.org) | 2 * Copyright (C) 1997 Martin Jones (mjones@kde.org) |
3 * (C) 1997 Torben Weis (weis@kde.org) | 3 * (C) 1997 Torben Weis (weis@kde.org) |
4 * (C) 1998 Waldo Bastian (bastian@kde.org) | 4 * (C) 1998 Waldo Bastian (bastian@kde.org) |
5 * (C) 1999 Lars Knoll (knoll@kde.org) | 5 * (C) 1999 Lars Knoll (knoll@kde.org) |
6 * (C) 1999 Antti Koivisto (koivisto@kde.org) | 6 * (C) 1999 Antti Koivisto (koivisto@kde.org) |
7 * Copyright (C) 2003, 2004, 2005, 2006, 2008, 2009, 2010, 2013 Apple Inc. All r
ights reserved. | 7 * Copyright (C) 2003, 2004, 2005, 2006, 2008, 2009, 2010, 2013 Apple Inc. All r
ights reserved. |
8 * Copyright (C) 2006 Alexey Proskuryakov (ap@nypop.com) | 8 * Copyright (C) 2006 Alexey Proskuryakov (ap@nypop.com) |
9 * | 9 * |
10 * This library is free software; you can redistribute it and/or | 10 * This library is free software; you can redistribute it and/or |
(...skipping 796 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
807 | 807 |
808 unsigned endCol = startColumn; | 808 unsigned endCol = startColumn; |
809 unsigned cspan = cell->colSpan(); | 809 unsigned cspan = cell->colSpan(); |
810 while (cspan && endCol < cols) { | 810 while (cspan && endCol < cols) { |
811 ASSERT(endCol < table()->columns().size()); | 811 ASSERT(endCol < table()->columns().size()); |
812 cspan -= table()->columns()[endCol].span; | 812 cspan -= table()->columns()[endCol].span; |
813 endCol++; | 813 endCol++; |
814 } | 814 } |
815 int tableLayoutLogicalWidth = columnPos[endCol] - columnPos[startCol
umn] - table()->hBorderSpacing(); | 815 int tableLayoutLogicalWidth = columnPos[endCol] - columnPos[startCol
umn] - table()->hBorderSpacing(); |
816 cell->setCellLogicalWidth(tableLayoutLogicalWidth, layouter); | 816 cell->setCellLogicalWidth(tableLayoutLogicalWidth, layouter); |
| 817 |
| 818 if (cell->needsRecalcLogicalWidthAfterLayoutChildren()) { |
| 819 cell->clearNeedsRecalcLogicalWidthAfterLayoutChildren(); |
| 820 cell->setPreferredLogicalWidthsDirty(MarkOnlyThis); |
| 821 table()->setNeedsRecalcLogicalWidthAfterLayoutChildren(); |
| 822 } |
817 } | 823 } |
818 | 824 |
819 if (LayoutTableRow* rowLayoutObject = m_grid[r].rowLayoutObject) { | 825 if (LayoutTableRow* rowLayoutObject = m_grid[r].rowLayoutObject) { |
820 if (!rowLayoutObject->needsLayout()) | 826 if (!rowLayoutObject->needsLayout()) |
821 rowLayoutObject->markForPaginationRelayoutIfNeeded(layouter); | 827 rowLayoutObject->markForPaginationRelayoutIfNeeded(layouter); |
822 rowLayoutObject->layoutIfNeeded(); | 828 rowLayoutObject->layoutIfNeeded(); |
823 } | 829 } |
824 } | 830 } |
825 | 831 |
826 clearNeedsLayout(); | 832 clearNeedsLayout(); |
(...skipping 790 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1617 // FIXME: The table's direction should determine our row's direction, not th
e section's (see bug 96691). | 1623 // FIXME: The table's direction should determine our row's direction, not th
e section's (see bug 96691). |
1618 if (!style()->isLeftToRightDirection()) | 1624 if (!style()->isLeftToRightDirection()) |
1619 cellLocation.setX(table()->columnPositions()[table()->numEffCols()] - ta
ble()->columnPositions()[table()->colToEffCol(cell->col() + cell->colSpan())] +
horizontalBorderSpacing); | 1625 cellLocation.setX(table()->columnPositions()[table()->numEffCols()] - ta
ble()->columnPositions()[table()->colToEffCol(cell->col() + cell->colSpan())] +
horizontalBorderSpacing); |
1620 else | 1626 else |
1621 cellLocation.setX(table()->columnPositions()[effectiveColumn] + horizont
alBorderSpacing); | 1627 cellLocation.setX(table()->columnPositions()[effectiveColumn] + horizont
alBorderSpacing); |
1622 | 1628 |
1623 cell->setLogicalLocation(cellLocation); | 1629 cell->setLogicalLocation(cellLocation); |
1624 } | 1630 } |
1625 | 1631 |
1626 } // namespace blink | 1632 } // namespace blink |
OLD | NEW |