Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(53)

Side by Side Diff: third_party/WebKit/Source/core/layout/LayoutTableSection.cpp

Issue 2219153002: Offset repeating theads correctly when two tables adjoin at a page border (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: bug 634404 Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 1117 matching lines...) Expand 10 before | Expand all | Expand 10 after
1128 1128
1129 ASSERT(!needsLayout()); 1129 ASSERT(!needsLayout());
1130 1130
1131 setLogicalHeight(LayoutUnit(m_rowPos[totalRows])); 1131 setLogicalHeight(LayoutUnit(m_rowPos[totalRows]));
1132 1132
1133 computeOverflowFromCells(totalRows, nEffCols); 1133 computeOverflowFromCells(totalRows, nEffCols);
1134 } 1134 }
1135 1135
1136 int LayoutTableSection::paginationStrutForRow(LayoutTableRow* row, LayoutUnit lo gicalOffset) const 1136 int LayoutTableSection::paginationStrutForRow(LayoutTableRow* row, LayoutUnit lo gicalOffset) const
1137 { 1137 {
1138 DCHECK(row);
1138 // Even if the row allows us to break-inside, we will want to put a strut on the row if we have a header 1139 // Even if the row allows us to break-inside, we will want to put a strut on the row if we have a header
1139 // group that wants to appear at the top of each page. 1140 // group that wants to appear at the top of each page.
1140 bool tableHeaderForcesStrut = table()->header() ? table()->header()->getPagi nationBreakability() != AllowAnyBreaks : false; 1141 bool tableHeaderForcesStrut = table()->header() ? table()->header()->getPagi nationBreakability() != AllowAnyBreaks : false;
1141 if (row->getPaginationBreakability() == AllowAnyBreaks && !tableHeaderForces Strut) 1142 if (row->getPaginationBreakability() == AllowAnyBreaks && !tableHeaderForces Strut)
1142 return 0; 1143 return 0;
1143 LayoutUnit pageLogicalHeight = pageLogicalHeightForOffset(logicalOffset); 1144 LayoutUnit pageLogicalHeight = pageLogicalHeightForOffset(logicalOffset);
1144 if (!pageLogicalHeight) 1145 if (!pageLogicalHeight)
1145 return 0; 1146 return 0;
1146 // If the row is too tall for the page don't insert a strut. 1147 // If the row is too tall for the page don't insert a strut.
1147 LayoutUnit rowLogicalHeight = row->logicalHeight(); 1148 LayoutUnit rowLogicalHeight = row->logicalHeight();
(...skipping 597 matching lines...) Expand 10 before | Expand all | Expand 10 after
1745 // Repeating table headers are painted once per fragmentation page/column. T his does not go through the regular fragmentation machinery, 1746 // Repeating table headers are painted once per fragmentation page/column. T his does not go through the regular fragmentation machinery,
1746 // so we need special code to expand the invalidation rect to contain all po sitions of the header in all columns. 1747 // so we need special code to expand the invalidation rect to contain all po sitions of the header in all columns.
1747 // Note that this is in flow thread coordinates, not visual coordinates. The enclosing LayoutFlowThread will convert to visual coordinates. 1748 // Note that this is in flow thread coordinates, not visual coordinates. The enclosing LayoutFlowThread will convert to visual coordinates.
1748 if (table()->header() == this && hasRepeatingHeaderGroup()) 1749 if (table()->header() == this && hasRepeatingHeaderGroup())
1749 rect.setHeight(table()->logicalHeight()); 1750 rect.setHeight(table()->logicalHeight());
1750 return LayoutTableBoxComponent::mapToVisualRectInAncestorSpace(ancestor, rec t, flags); 1751 return LayoutTableBoxComponent::mapToVisualRectInAncestorSpace(ancestor, rec t, flags);
1751 } 1752 }
1752 1753
1753 1754
1754 } // namespace blink 1755 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/layout/LayoutTable.cpp ('k') | third_party/WebKit/Source/core/paint/TableSectionPainter.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698