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 745 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
756 // For row spanning cells, we only handle them for the first
row they span. This ensures we take their baseline into account. | 756 // For row spanning cells, we only handle them for the first
row they span. This ensures we take their baseline into account. |
757 if (lastRowSpanCell != cell && cell->rowIndex() == r) { | 757 if (lastRowSpanCell != cell && cell->rowIndex() == r) { |
758 #if ENABLE(ASSERT) | 758 #if ENABLE(ASSERT) |
759 ASSERT(!uniqueCells.contains(cell)); | 759 ASSERT(!uniqueCells.contains(cell)); |
760 uniqueCells.add(cell); | 760 uniqueCells.add(cell); |
761 #endif | 761 #endif |
762 | 762 |
763 rowSpanCells.append(cell); | 763 rowSpanCells.append(cell); |
764 lastRowSpanCell = cell; | 764 lastRowSpanCell = cell; |
765 | 765 |
| 766 if (cell->hasOverrideLogicalContentHeight()) { |
| 767 cell->clearIntrinsicPadding(); |
| 768 cell->clearOverrideSize(); |
| 769 cell->forceChildLayout(); |
| 770 } |
| 771 |
766 // Find out the baseline. The baseline is set on the fir
st row in a rowSpan. | 772 // Find out the baseline. The baseline is set on the fir
st row in a rowSpan. |
767 updateBaselineForCell(cell, r, baselineDescent); | 773 updateBaselineForCell(cell, r, baselineDescent); |
768 } | 774 } |
769 continue; | 775 continue; |
770 } | 776 } |
771 | 777 |
772 ASSERT(cell->rowSpan() == 1); | 778 ASSERT(cell->rowSpan() == 1); |
773 | 779 |
774 if (cell->hasOverrideLogicalContentHeight()) { | 780 if (cell->hasOverrideLogicalContentHeight()) { |
775 cell->clearIntrinsicPadding(); | 781 cell->clearIntrinsicPadding(); |
(...skipping 868 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1644 // FIXME: The table's direction should determine our row's direction, not th
e section's (see bug 96691). | 1650 // FIXME: The table's direction should determine our row's direction, not th
e section's (see bug 96691). |
1645 if (!style()->isLeftToRightDirection()) | 1651 if (!style()->isLeftToRightDirection()) |
1646 cellLocation.setX(table()->columnPositions()[table()->numEffCols()] - ta
ble()->columnPositions()[table()->colToEffCol(cell->col() + cell->colSpan())] +
horizontalBorderSpacing); | 1652 cellLocation.setX(table()->columnPositions()[table()->numEffCols()] - ta
ble()->columnPositions()[table()->colToEffCol(cell->col() + cell->colSpan())] +
horizontalBorderSpacing); |
1647 else | 1653 else |
1648 cellLocation.setX(table()->columnPositions()[effectiveColumn] + horizont
alBorderSpacing); | 1654 cellLocation.setX(table()->columnPositions()[effectiveColumn] + horizont
alBorderSpacing); |
1649 | 1655 |
1650 cell->setLogicalLocation(cellLocation); | 1656 cell->setLogicalLocation(cellLocation); |
1651 } | 1657 } |
1652 | 1658 |
1653 } // namespace blink | 1659 } // namespace blink |
OLD | NEW |