Index: third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp |
diff --git a/third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp b/third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp |
index a53a7603bd935af6e556c0e1855197b420c4c62f..0b1d2b88ddf91a6c48b575dfda3fd304da450e19 100644 |
--- a/third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp |
+++ b/third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp |
@@ -41,6 +41,7 @@ |
#include "core/layout/LayoutMultiColumnFlowThread.h" |
#include "core/layout/LayoutMultiColumnSpannerPlaceholder.h" |
#include "core/layout/LayoutPagedFlowThread.h" |
+#include "core/layout/LayoutTableRow.h" |
#include "core/layout/LayoutText.h" |
#include "core/layout/LayoutView.h" |
#include "core/layout/TextAutosizer.h" |
@@ -732,6 +733,13 @@ LayoutUnit LayoutBlockFlow::adjustBlockChildForPagination(LayoutUnit logicalTop, |
static bool shouldSetStrutOnBlock(const LayoutBlockFlow& block, const RootInlineBox& lineBox, LayoutUnit lineLogicalOffset, int lineIndex, LayoutUnit pageLogicalHeight) |
{ |
+ LayoutUnit lineHeight = lineBox.lineBottomWithLeading() - lineBox.lineTopWithLeading(); |
+ LayoutUnit totalLogicalHeight = lineHeight + std::max<LayoutUnit>(0, lineLogicalOffset); |
+ |
+ // We avoid letting table cells straddle a page boundary unless the cell is taller than the page. |
+ if (block.isTableCell() && totalLogicalHeight <= pageLogicalHeight) |
mstensho (USE GERRIT)
2016/02/03 14:38:48
It should be better to have allowsPaginationStrut(
|
+ return true; |
+ |
bool wantsStrutOnBlock = false; |
if (!block.style()->hasAutoOrphans() && block.style()->orphans() >= lineIndex) { |
// Not enough orphans here. Push the entire block to the next column / page as an |
@@ -744,8 +752,6 @@ static bool shouldSetStrutOnBlock(const LayoutBlockFlow& block, const RootInline |
// means that the line was pushed downwards by preceding floats that didn't fit beside the |
// line, and we don't want to move all that, since it has already been established that it |
// fits nicely where it is. |
- LayoutUnit lineHeight = lineBox.lineBottomWithLeading() - lineBox.lineTopWithLeading(); |
- LayoutUnit totalLogicalHeight = lineHeight + std::max<LayoutUnit>(0, lineLogicalOffset); |
// It's rather pointless to break before the block if the current line isn't going to |
// fit in the same column or page, so check that as well. |
if (totalLogicalHeight <= pageLogicalHeight) |