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 2390 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2401 return -1; | 2401 return -1; |
2402 } | 2402 } |
2403 | 2403 |
2404 bool LayoutBox::skipContainingBlockForPercentHeightCalculation(const LayoutBox*
containingBlock) const | 2404 bool LayoutBox::skipContainingBlockForPercentHeightCalculation(const LayoutBox*
containingBlock) const |
2405 { | 2405 { |
2406 // If the writing mode of the containing block is orthogonal to ours, it mea
ns that we shouldn't | 2406 // If the writing mode of the containing block is orthogonal to ours, it mea
ns that we shouldn't |
2407 // skip anything, since we're going to resolve the percentage height against
a containing block *width*. | 2407 // skip anything, since we're going to resolve the percentage height against
a containing block *width*. |
2408 if (isHorizontalWritingMode() != containingBlock->isHorizontalWritingMode()) | 2408 if (isHorizontalWritingMode() != containingBlock->isHorizontalWritingMode()) |
2409 return false; | 2409 return false; |
2410 | 2410 |
2411 // Anonymous layout objects are invisible to the DOM, so whatever they're do
ing there, they | 2411 // Anonymous blocks should not impede percentage resolution on a child. Exam
ples of such |
2412 // should not impede percentage resolution on a child. Examples of such anon
ymous layout objects | 2412 // anonymous blocks are blocks wrapped around inlines that have block siblin
gs (from the CSS |
2413 // are multicol flow threads and ruby runs. | 2413 // spec) and multicol flow threads (an implementation detail). Another imple
mentation detail, |
2414 if (containingBlock->isAnonymous()) | 2414 // ruby runs, create anonymous inline-blocks, so skip those too. All other t
ypes of anonymous |
2415 return true; | 2415 // objects, such as table-cells, will be treated just as if they were non-an
onymous. |
| 2416 if (containingBlock->isAnonymous()) { |
| 2417 EDisplay display = containingBlock->styleRef().display(); |
| 2418 return display == BLOCK || display == INLINE_BLOCK; |
| 2419 } |
2416 | 2420 |
2417 // For quirks mode, we skip most auto-height containing blocks when computin
g percentages. | 2421 // For quirks mode, we skip most auto-height containing blocks when computin
g percentages. |
2418 return document().inQuirksMode() && !containingBlock->isTableCell() && !cont
ainingBlock->isOutOfFlowPositioned() && containingBlock->style()->logicalHeight(
).isAuto(); | 2422 return document().inQuirksMode() && !containingBlock->isTableCell() && !cont
ainingBlock->isOutOfFlowPositioned() && containingBlock->style()->logicalHeight(
).isAuto(); |
2419 } | 2423 } |
2420 | 2424 |
2421 LayoutUnit LayoutBox::computePercentageLogicalHeight(const Length& height) const | 2425 LayoutUnit LayoutBox::computePercentageLogicalHeight(const Length& height) const |
2422 { | 2426 { |
2423 LayoutUnit availableHeight = -1; | 2427 LayoutUnit availableHeight = -1; |
2424 | 2428 |
2425 bool skippedAutoHeightContainingBlock = false; | 2429 bool skippedAutoHeightContainingBlock = false; |
(...skipping 2312 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4738 StyleImage* borderImage = style()->borderImage().image(); | 4742 StyleImage* borderImage = style()->borderImage().image(); |
4739 return borderImage && borderImage->canRender(*this, style()->effectiveZoom()
) && borderImage->isLoaded(); | 4743 return borderImage && borderImage->canRender(*this, style()->effectiveZoom()
) && borderImage->isLoaded(); |
4740 } | 4744 } |
4741 | 4745 |
4742 ShapeOutsideInfo* LayoutBox::shapeOutsideInfo() const | 4746 ShapeOutsideInfo* LayoutBox::shapeOutsideInfo() const |
4743 { | 4747 { |
4744 return ShapeOutsideInfo::isEnabledFor(*this) ? ShapeOutsideInfo::info(*this)
: nullptr; | 4748 return ShapeOutsideInfo::isEnabledFor(*this) ? ShapeOutsideInfo::info(*this)
: nullptr; |
4745 } | 4749 } |
4746 | 4750 |
4747 } // namespace blink | 4751 } // namespace blink |
OLD | NEW |