OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) | 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) |
4 * (C) 2007 David Smith (catfish.man@gmail.com) | 4 * (C) 2007 David Smith (catfish.man@gmail.com) |
5 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc.
All rights reserved. | 5 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc.
All rights reserved. |
6 * Copyright (C) Research In Motion Limited 2010. All rights reserved. | 6 * Copyright (C) Research In Motion Limited 2010. All rights reserved. |
7 * | 7 * |
8 * This library is free software; you can redistribute it and/or | 8 * This library is free software; you can redistribute it and/or |
9 * modify it under the terms of the GNU Library General Public | 9 * modify it under the terms of the GNU Library General Public |
10 * License as published by the Free Software Foundation; either | 10 * License as published by the Free Software Foundation; either |
(...skipping 4496 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4507 // If includeBoundaryPoint is true the line exactly on the top edge
of a | 4507 // If includeBoundaryPoint is true the line exactly on the top edge
of a |
4508 // column will act as being part of the previous column. | 4508 // column will act as being part of the previous column. |
4509 remainingHeight = intMod(remainingHeight, pageLogicalHeight); | 4509 remainingHeight = intMod(remainingHeight, pageLogicalHeight); |
4510 } | 4510 } |
4511 return remainingHeight; | 4511 return remainingHeight; |
4512 } | 4512 } |
4513 | 4513 |
4514 return flowThread->pageRemainingLogicalHeightForOffset(offset, pageBoundaryR
ule); | 4514 return flowThread->pageRemainingLogicalHeightForOffset(offset, pageBoundaryR
ule); |
4515 } | 4515 } |
4516 | 4516 |
4517 LayoutUnit RenderBlock::adjustForUnsplittableChild(RenderBox* child, LayoutUnit
logicalOffset, bool includeMargins) | |
4518 { | |
4519 bool checkColumnBreaks = view()->layoutState()->isPaginatingColumns() || flo
wThreadContainingBlock(); | |
4520 bool checkPageBreaks = !checkColumnBreaks && view()->layoutState()->pageLogi
calHeight(); | |
4521 bool isUnsplittable = child->isUnsplittableForPagination() || (checkColumnBr
eaks && child->style()->columnBreakInside() == PBAVOID) | |
4522 || (checkPageBreaks && child->style()->pageBreakInside() == PBAVOID); | |
4523 if (!isUnsplittable) | |
4524 return logicalOffset; | |
4525 LayoutUnit childLogicalHeight = logicalHeightForChild(child) + (includeMargi
ns ? marginBeforeForChild(child) + marginAfterForChild(child) : LayoutUnit()); | |
4526 LayoutUnit pageLogicalHeight = pageLogicalHeightForOffset(logicalOffset); | |
4527 updateMinimumPageHeight(logicalOffset, childLogicalHeight); | |
4528 if (!pageLogicalHeight || childLogicalHeight > pageLogicalHeight) | |
4529 return logicalOffset; | |
4530 LayoutUnit remainingLogicalHeight = pageRemainingLogicalHeightForOffset(logi
calOffset, ExcludePageBoundary); | |
4531 if (remainingLogicalHeight < childLogicalHeight) | |
4532 return logicalOffset + remainingLogicalHeight; | |
4533 return logicalOffset; | |
4534 } | |
4535 | |
4536 void RenderBlock::setPageBreak(LayoutUnit offset, LayoutUnit spaceShortage) | 4517 void RenderBlock::setPageBreak(LayoutUnit offset, LayoutUnit spaceShortage) |
4537 { | 4518 { |
4538 if (RenderFlowThread* flowThread = flowThreadContainingBlock()) | 4519 if (RenderFlowThread* flowThread = flowThreadContainingBlock()) |
4539 flowThread->setPageBreak(offsetFromLogicalTopOfFirstPage() + offset, spa
ceShortage); | 4520 flowThread->setPageBreak(offsetFromLogicalTopOfFirstPage() + offset, spa
ceShortage); |
4540 } | 4521 } |
4541 | 4522 |
4542 void RenderBlock::updateMinimumPageHeight(LayoutUnit offset, LayoutUnit minHeigh
t) | 4523 void RenderBlock::updateMinimumPageHeight(LayoutUnit offset, LayoutUnit minHeigh
t) |
4543 { | 4524 { |
4544 if (RenderFlowThread* flowThread = flowThreadContainingBlock()) | 4525 if (RenderFlowThread* flowThread = flowThreadContainingBlock()) |
4545 flowThread->updateMinimumPageHeight(offsetFromLogicalTopOfFirstPage() +
offset, minHeight); | 4526 flowThread->updateMinimumPageHeight(offsetFromLogicalTopOfFirstPage() +
offset, minHeight); |
(...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4809 void RenderBlock::showLineTreeAndMark(const InlineBox* markedBox1, const char* m
arkedLabel1, const InlineBox* markedBox2, const char* markedLabel2, const Render
Object* obj) const | 4790 void RenderBlock::showLineTreeAndMark(const InlineBox* markedBox1, const char* m
arkedLabel1, const InlineBox* markedBox2, const char* markedLabel2, const Render
Object* obj) const |
4810 { | 4791 { |
4811 showRenderObject(); | 4792 showRenderObject(); |
4812 for (const RootInlineBox* root = firstRootBox(); root; root = root->nextRoot
Box()) | 4793 for (const RootInlineBox* root = firstRootBox(); root; root = root->nextRoot
Box()) |
4813 root->showLineTreeAndMark(markedBox1, markedLabel1, markedBox2, markedLa
bel2, obj, 1); | 4794 root->showLineTreeAndMark(markedBox1, markedLabel1, markedBox2, markedLa
bel2, obj, 1); |
4814 } | 4795 } |
4815 | 4796 |
4816 #endif | 4797 #endif |
4817 | 4798 |
4818 } // namespace blink | 4799 } // namespace blink |
OLD | NEW |