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

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

Issue 2587673003: Content of cell should avoid repeating headers when it straddles multiple pages (Closed)
Patch Set: bug 675453 Created 4 years 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, 2007, 2008, 2009, 2010, 2013 7 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2013
8 * Apple Inc. 8 * Apple Inc.
9 * All rights reserved. 9 * All rights reserved.
10 * 10 *
(...skipping 294 matching lines...) Expand 10 before | Expand all | Expand 10 after
305 // The cell and the row share the section's coordinate system. However 305 // The cell and the row share the section's coordinate system. However
306 // the visual overflow should be determined in the coordinate system of 306 // the visual overflow should be determined in the coordinate system of
307 // the row, that's why we shift it below. 307 // the row, that's why we shift it below.
308 LayoutUnit cellOffsetLogicalTopDifference = 308 LayoutUnit cellOffsetLogicalTopDifference =
309 cell->location().y() - location().y(); 309 cell->location().y() - location().y();
310 cellVisualOverflowRect.move(LayoutUnit(), cellOffsetLogicalTopDifference); 310 cellVisualOverflowRect.move(LayoutUnit(), cellOffsetLogicalTopDifference);
311 311
312 addContentsVisualOverflow(cellVisualOverflowRect); 312 addContentsVisualOverflow(cellVisualOverflowRect);
313 } 313 }
314 314
315 bool LayoutTableRow::isFirstRowInSectionAfterHeader() const {
316 // If there isn't room for at least one content row on a page after the
317 // header group, then we won't repeat the header on each page.
318 // https://drafts.csswg.org/css-tables-3/#repeated-headers reads like
319 // it wants us to drop headers on only the pages that a single row
320 // won't fit but we avoid the complexity of that reading until it
321 // is clarified. Tracked by crbug.com/675904
322 LayoutTableSection* header = table()->header();
mstensho (USE GERRIT) 2016/12/20 11:47:00 Might want to do an early return for rowIndex() i
rhogan 2016/12/20 16:06:37 return !rowIndex() && ..; returns just as quickly
mstensho (USE GERRIT) 2016/12/20 16:50:36 I was thinking that you could put it in front of t
mstensho (USE GERRIT) 2016/12/20 18:20:54 Did you mean to address this too?
323 return !rowIndex() && header && table()->sectionAbove(section()) == header &&
324 header->getPaginationBreakability() != AllowAnyBreaks;
325 }
326
315 } // namespace blink 327 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698