| Index: Source/core/rendering/RenderBlock.cpp
|
| diff --git a/Source/core/rendering/RenderBlock.cpp b/Source/core/rendering/RenderBlock.cpp
|
| index 8b659c6fc1102bb84deed818f02f858726598aa2..7a4db09eda33c4fdc5d87bc6e6582270b9c086ae 100644
|
| --- a/Source/core/rendering/RenderBlock.cpp
|
| +++ b/Source/core/rendering/RenderBlock.cpp
|
| @@ -4495,6 +4495,23 @@ LayoutUnit RenderBlock::nextPageLogicalTop(LayoutUnit logicalOffset, PageBoundar
|
| return logicalOffset + remainingLogicalHeight;
|
| }
|
|
|
| +LayoutUnit RenderBlock::pageLogicalTopForOffset(LayoutUnit offset) const
|
| +{
|
| + RenderView* renderView = view();
|
| + LayoutUnit firstPageLogicalTop = isHorizontalWritingMode() ? renderView->layoutState()->pageOffset().height() : renderView->layoutState()->pageOffset().width();
|
| + LayoutUnit blockLogicalTop = isHorizontalWritingMode() ? renderView->layoutState()->layoutOffset().height() : renderView->layoutState()->layoutOffset().width();
|
| +
|
| + LayoutUnit cumulativeOffset = offset + blockLogicalTop;
|
| + RenderFlowThread* flowThread = flowThreadContainingBlock();
|
| + if (!flowThread) {
|
| + LayoutUnit pageLogicalHeight = renderView->layoutState()->pageLogicalHeight();
|
| + if (!pageLogicalHeight)
|
| + return 0;
|
| + return cumulativeOffset - roundToInt(cumulativeOffset - firstPageLogicalTop) % roundToInt(pageLogicalHeight);
|
| + }
|
| + return flowThread->pageLogicalTopForOffset(cumulativeOffset);
|
| +}
|
| +
|
| LayoutUnit RenderBlock::pageLogicalHeightForOffset(LayoutUnit offset) const
|
| {
|
| RenderView* renderView = view();
|
|
|