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

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

Issue 2766643003: When repeating headers don't use the header offset on the header itself (Closed)
Patch Set: Created 3 years, 9 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
« no previous file with comments | « third_party/WebKit/LayoutTests/printing/avoid-setting-header-offset-on-header-expected.html ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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. 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 2001 matching lines...) Expand 10 before | Expand all | Expand 10 after
2012 if (rowObject.isFirstRowInSectionAfterHeader()) 2012 if (rowObject.isFirstRowInSectionAfterHeader())
2013 table()->setRowOffsetFromRepeatingHeader(LayoutUnit()); 2013 table()->setRowOffsetFromRepeatingHeader(LayoutUnit());
2014 // Border spacing from the previous row has pushed this row just past the top 2014 // Border spacing from the previous row has pushed this row just past the top
2015 // of the page, so we must reposition it to the top of the page and avoid any 2015 // of the page, so we must reposition it to the top of the page and avoid any
2016 // repeating header. 2016 // repeating header.
2017 if (rowIsAtTopOfColumn && offsetFromTopOfPage) 2017 if (rowIsAtTopOfColumn && offsetFromTopOfPage)
2018 paginationStrut -= offsetFromTopOfPage.toInt(); 2018 paginationStrut -= offsetFromTopOfPage.toInt();
2019 2019
2020 // If we have a header group we will paint it at the top of each page, 2020 // If we have a header group we will paint it at the top of each page,
2021 // move the rows down to accomodate it. 2021 // move the rows down to accomodate it.
2022 if (header) 2022 if (header && header != this)
2023 paginationStrut += table()->rowOffsetFromRepeatingHeader().toInt(); 2023 paginationStrut += table()->rowOffsetFromRepeatingHeader().toInt();
2024 rowObject.setPaginationStrut(LayoutUnit(paginationStrut)); 2024 rowObject.setPaginationStrut(LayoutUnit(paginationStrut));
2025 2025
2026 // We have inserted a pagination strut before the row. Adjust the logical top 2026 // We have inserted a pagination strut before the row. Adjust the logical top
2027 // and re-lay out. We no longer want to break inside the row, but rather 2027 // and re-lay out. We no longer want to break inside the row, but rather
2028 // *before* it. From the previous layout pass, there are most likely 2028 // *before* it. From the previous layout pass, there are most likely
2029 // pagination struts inside some cell in this row that we need to get rid of. 2029 // pagination struts inside some cell in this row that we need to get rid of.
2030 rowObject.setLogicalTop(rowObject.logicalTop() + paginationStrut); 2030 rowObject.setLogicalTop(rowObject.logicalTop() + paginationStrut);
2031 layouter.setChildNeedsLayout(&rowObject); 2031 layouter.setChildNeedsLayout(&rowObject);
2032 rowObject.layoutIfNeeded(); 2032 rowObject.layoutIfNeeded();
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
2079 transformState.flatten(); 2079 transformState.flatten();
2080 FloatRect rect = transformState.lastPlanarQuad().boundingBox(); 2080 FloatRect rect = transformState.lastPlanarQuad().boundingBox();
2081 rect.setHeight(table()->logicalHeight()); 2081 rect.setHeight(table()->logicalHeight());
2082 transformState.setQuad(FloatQuad(rect)); 2082 transformState.setQuad(FloatQuad(rect));
2083 } 2083 }
2084 return LayoutTableBoxComponent::mapToVisualRectInAncestorSpaceInternal( 2084 return LayoutTableBoxComponent::mapToVisualRectInAncestorSpaceInternal(
2085 ancestor, transformState, flags); 2085 ancestor, transformState, flags);
2086 } 2086 }
2087 2087
2088 } // namespace blink 2088 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/LayoutTests/printing/avoid-setting-header-offset-on-header-expected.html ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698