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. | 7 * Copyright (C) 2003, 2004, 2005, 2006, 2008, 2009, 2010, 2013 Apple Inc. |
8 * All rights reserved. | 8 * All rights reserved. |
9 * Copyright (C) 2006 Alexey Proskuryakov (ap@nypop.com) | 9 * Copyright (C) 2006 Alexey Proskuryakov (ap@nypop.com) |
10 * | 10 * |
(...skipping 972 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
983 ASSERT(endCol < table()->effectiveColumns().size()); | 983 ASSERT(endCol < table()->effectiveColumns().size()); |
984 cspan -= table()->effectiveColumns()[endCol].span; | 984 cspan -= table()->effectiveColumns()[endCol].span; |
985 endCol++; | 985 endCol++; |
986 } | 986 } |
987 int tableLayoutLogicalWidth = columnPos[endCol] - columnPos[startColumn] - | 987 int tableLayoutLogicalWidth = columnPos[endCol] - columnPos[startColumn] - |
988 table()->hBorderSpacing(); | 988 table()->hBorderSpacing(); |
989 cell->setCellLogicalWidth(tableLayoutLogicalWidth, layouter); | 989 cell->setCellLogicalWidth(tableLayoutLogicalWidth, layouter); |
990 } | 990 } |
991 | 991 |
992 if (LayoutTableRow* rowLayoutObject = m_grid[r].rowLayoutObject) { | 992 if (LayoutTableRow* rowLayoutObject = m_grid[r].rowLayoutObject) { |
993 if (state.isPaginated()) { | 993 if (state.isPaginated()) |
994 rowLayoutObject->setLogicalTop(rowLogicalTop); | 994 rowLayoutObject->setLogicalTop(rowLogicalTop); |
995 if (!rowLayoutObject->needsLayout()) | 995 if (!rowLayoutObject->needsLayout()) |
996 markChildForPaginationRelayoutIfNeeded(*rowLayoutObject, layouter); | 996 markChildForPaginationRelayoutIfNeeded(*rowLayoutObject, layouter); |
997 } | |
998 rowLayoutObject->layoutIfNeeded(); | 997 rowLayoutObject->layoutIfNeeded(); |
999 if (state.isPaginated()) { | 998 if (state.isPaginated()) { |
1000 adjustRowForPagination(*rowLayoutObject, layouter); | 999 adjustRowForPagination(*rowLayoutObject, layouter); |
| 1000 updateFragmentationInfoForChild(*rowLayoutObject); |
1001 rowLogicalTop = rowLayoutObject->logicalBottom(); | 1001 rowLogicalTop = rowLayoutObject->logicalBottom(); |
1002 rowLogicalTop += LayoutUnit(table()->vBorderSpacing()); | 1002 rowLogicalTop += LayoutUnit(table()->vBorderSpacing()); |
1003 } | 1003 } |
1004 } | 1004 } |
1005 } | 1005 } |
1006 | 1006 |
1007 clearNeedsLayout(); | 1007 clearNeedsLayout(); |
1008 } | 1008 } |
1009 | 1009 |
1010 void LayoutTableSection::distributeExtraLogicalHeightToPercentRows( | 1010 void LayoutTableSection::distributeExtraLogicalHeightToPercentRows( |
(...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1197 crossesPageBoundary(LayoutUnit(rowLogicalTop), LayoutUnit(rHeight))) | 1197 crossesPageBoundary(LayoutUnit(rowLogicalTop), LayoutUnit(rHeight))) |
1198 cellVerticalAlign = VerticalAlignTop; | 1198 cellVerticalAlign = VerticalAlignTop; |
1199 else | 1199 else |
1200 cellVerticalAlign = cell->style()->verticalAlign(); | 1200 cellVerticalAlign = cell->style()->verticalAlign(); |
1201 cell->computeIntrinsicPadding(rHeight, cellVerticalAlign, layouter); | 1201 cell->computeIntrinsicPadding(rHeight, cellVerticalAlign, layouter); |
1202 | 1202 |
1203 LayoutRect oldCellRect = cell->frameRect(); | 1203 LayoutRect oldCellRect = cell->frameRect(); |
1204 | 1204 |
1205 setLogicalPositionForCell(cell, c); | 1205 setLogicalPositionForCell(cell, c); |
1206 | 1206 |
1207 if (!cell->needsLayout()) | |
1208 markChildForPaginationRelayoutIfNeeded(*cell, layouter); | |
1209 | |
1210 cell->layoutIfNeeded(); | 1207 cell->layoutIfNeeded(); |
1211 | 1208 |
1212 LayoutSize childOffset(cell->location() - oldCellRect.location()); | 1209 LayoutSize childOffset(cell->location() - oldCellRect.location()); |
1213 if (childOffset.width() || childOffset.height()) { | 1210 if (childOffset.width() || childOffset.height()) { |
1214 // If the child moved, we have to issue paint invalidations to it as | 1211 // If the child moved, we have to issue paint invalidations to it as |
1215 // well as any floating/positioned descendants. An exception is if we | 1212 // well as any floating/positioned descendants. An exception is if we |
1216 // need a layout. In this case, we know we're going to issue paint | 1213 // need a layout. In this case, we know we're going to issue paint |
1217 // invalidations ourselves (and the child) anyway. | 1214 // invalidations ourselves (and the child) anyway. |
1218 if (!table()->selfNeedsLayout()) | 1215 if (!table()->selfNeedsLayout()) |
1219 cell->setMayNeedPaintInvalidation(); | 1216 cell->setMayNeedPaintInvalidation(); |
(...skipping 858 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2078 // the header in all columns. | 2075 // the header in all columns. |
2079 // Note that this is in flow thread coordinates, not visual coordinates. The | 2076 // Note that this is in flow thread coordinates, not visual coordinates. The |
2080 // enclosing LayoutFlowThread will convert to visual coordinates. | 2077 // enclosing LayoutFlowThread will convert to visual coordinates. |
2081 if (table()->header() == this && isRepeatingHeaderGroup()) | 2078 if (table()->header() == this && isRepeatingHeaderGroup()) |
2082 rect.setHeight(table()->logicalHeight()); | 2079 rect.setHeight(table()->logicalHeight()); |
2083 return LayoutTableBoxComponent::mapToVisualRectInAncestorSpace(ancestor, rect, | 2080 return LayoutTableBoxComponent::mapToVisualRectInAncestorSpace(ancestor, rect, |
2084 flags); | 2081 flags); |
2085 } | 2082 } |
2086 | 2083 |
2087 } // namespace blink | 2084 } // namespace blink |
OLD | NEW |