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) 2005 Allan Sandfeld Jensen (kde@carewolf.com) | 4 * (C) 2005 Allan Sandfeld Jensen (kde@carewolf.com) |
5 * (C) 2005, 2006 Samuel Weinig (sam.weinig@gmail.com) | 5 * (C) 2005, 2006 Samuel Weinig (sam.weinig@gmail.com) |
6 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserv
ed. | 6 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserv
ed. |
7 * Copyright (C) 2013 Adobe Systems Incorporated. All rights reserved. | 7 * Copyright (C) 2013 Adobe Systems Incorporated. All rights reserved. |
8 * | 8 * |
9 * This library is free software; you can redistribute it and/or | 9 * This library is free software; you can redistribute it and/or |
10 * modify it under the terms of the GNU Library General Public | 10 * modify it under the terms of the GNU Library General Public |
(...skipping 4385 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4396 // We do have overflow. We'll still be willing to paginate as long as the bl
ock | 4396 // We do have overflow. We'll still be willing to paginate as long as the bl
ock |
4397 // has auto logical height, auto or undefined max-logical-height and a zero
or auto min-logical-height. | 4397 // has auto logical height, auto or undefined max-logical-height and a zero
or auto min-logical-height. |
4398 // Note this is just a heuristic, and it's still possible to have overflow u
nder these | 4398 // Note this is just a heuristic, and it's still possible to have overflow u
nder these |
4399 // conditions, but it should work out to be good enough for common cases. Pa
ginating overflow | 4399 // conditions, but it should work out to be good enough for common cases. Pa
ginating overflow |
4400 // with scrollbars present is not the end of the world and is what we used t
o do in the old model anyway. | 4400 // with scrollbars present is not the end of the world and is what we used t
o do in the old model anyway. |
4401 return !style()->logicalHeight().isIntrinsicOrAuto() | 4401 return !style()->logicalHeight().isIntrinsicOrAuto() |
4402 || (!style()->logicalMaxHeight().isIntrinsicOrAuto() && !style()->logica
lMaxHeight().isMaxSizeNone() && (!style()->logicalMaxHeight().hasPercent() || pe
rcentageLogicalHeightIsResolvable())) | 4402 || (!style()->logicalMaxHeight().isIntrinsicOrAuto() && !style()->logica
lMaxHeight().isMaxSizeNone() && (!style()->logicalMaxHeight().hasPercent() || pe
rcentageLogicalHeightIsResolvable())) |
4403 || (!style()->logicalMinHeight().isIntrinsicOrAuto() && style()->logical
MinHeight().isPositive() && (!style()->logicalMinHeight().hasPercent() || percen
tageLogicalHeightIsResolvable())); | 4403 || (!style()->logicalMinHeight().isIntrinsicOrAuto() && style()->logical
MinHeight().isPositive() && (!style()->logicalMinHeight().hasPercent() || percen
tageLogicalHeightIsResolvable())); |
4404 } | 4404 } |
4405 | 4405 |
4406 bool LayoutBox::isUnsplittableForPagination() const | 4406 LayoutBox::PaginationBreakability LayoutBox::paginationBreakability() const |
4407 { | 4407 { |
4408 return isReplaced() | 4408 if (isReplaced() |
4409 || hasUnsplittableScrollingOverflow() | 4409 || hasUnsplittableScrollingOverflow() |
4410 || (parent() && isWritingModeRoot()) | 4410 || (parent() && isWritingModeRoot()) |
4411 || (isOutOfFlowPositioned() && style()->position() == FixedPosition); | 4411 || (isOutOfFlowPositioned() && style()->position() == FixedPosition)) |
| 4412 return ForbidBreaks; |
| 4413 |
| 4414 bool checkColumnBreaks = flowThreadContainingBlock(); |
| 4415 bool checkPageBreaks = !checkColumnBreaks && view()->layoutState()->pageLogi
calHeight(); |
| 4416 bool isUnsplittable = (checkColumnBreaks && style()->columnBreakInside() ==
PBAVOID) |
| 4417 || (checkPageBreaks && style()->pageBreakInside() == PBAVOID); |
| 4418 if (isUnsplittable) |
| 4419 return AvoidBreaks; |
| 4420 return AllowAnyBreaks; |
4412 } | 4421 } |
4413 | 4422 |
4414 LayoutUnit LayoutBox::lineHeight(bool /*firstLine*/, LineDirectionMode direction
, LinePositionMode /*linePositionMode*/) const | 4423 LayoutUnit LayoutBox::lineHeight(bool /*firstLine*/, LineDirectionMode direction
, LinePositionMode /*linePositionMode*/) const |
4415 { | 4424 { |
4416 if (isReplaced()) | 4425 if (isReplaced()) |
4417 return direction == HorizontalLine ? marginHeight() + size().height() :
marginWidth() + size().width(); | 4426 return direction == HorizontalLine ? marginHeight() + size().height() :
marginWidth() + size().width(); |
4418 return LayoutUnit(); | 4427 return LayoutUnit(); |
4419 } | 4428 } |
4420 | 4429 |
4421 int LayoutBox::baselinePosition(FontBaseline baselineType, bool /*firstLine*/, L
ineDirectionMode direction, LinePositionMode linePositionMode) const | 4430 int LayoutBox::baselinePosition(FontBaseline baselineType, bool /*firstLine*/, L
ineDirectionMode direction, LinePositionMode linePositionMode) const |
(...skipping 414 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4836 StyleImage* borderImage = style()->borderImage().image(); | 4845 StyleImage* borderImage = style()->borderImage().image(); |
4837 return borderImage && borderImage->canRender(*this, style()->effectiveZoom()
) && borderImage->isLoaded(); | 4846 return borderImage && borderImage->canRender(*this, style()->effectiveZoom()
) && borderImage->isLoaded(); |
4838 } | 4847 } |
4839 | 4848 |
4840 ShapeOutsideInfo* LayoutBox::shapeOutsideInfo() const | 4849 ShapeOutsideInfo* LayoutBox::shapeOutsideInfo() const |
4841 { | 4850 { |
4842 return ShapeOutsideInfo::isEnabledFor(*this) ? ShapeOutsideInfo::info(*this)
: nullptr; | 4851 return ShapeOutsideInfo::isEnabledFor(*this) ? ShapeOutsideInfo::info(*this)
: nullptr; |
4843 } | 4852 } |
4844 | 4853 |
4845 } // namespace blink | 4854 } // namespace blink |
OLD | NEW |