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 2414 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2425 return -1; | 2425 return -1; |
2426 } | 2426 } |
2427 | 2427 |
2428 bool LayoutBox::skipContainingBlockForPercentHeightCalculation(const LayoutBox*
containingBlock) const | 2428 bool LayoutBox::skipContainingBlockForPercentHeightCalculation(const LayoutBox*
containingBlock) const |
2429 { | 2429 { |
2430 // If the writing mode of the containing block is orthogonal to ours, it mea
ns that we shouldn't | 2430 // If the writing mode of the containing block is orthogonal to ours, it mea
ns that we shouldn't |
2431 // skip anything, since we're going to resolve the percentage height against
a containing block *width*. | 2431 // skip anything, since we're going to resolve the percentage height against
a containing block *width*. |
2432 if (isHorizontalWritingMode() != containingBlock->isHorizontalWritingMode()) | 2432 if (isHorizontalWritingMode() != containingBlock->isHorizontalWritingMode()) |
2433 return false; | 2433 return false; |
2434 | 2434 |
2435 // Flow threads for multicol or paged overflow should be skipped. They are i
nvisible to the DOM, | 2435 // Anonymous layout objects are invisible to the DOM, so whatever they're do
ing there, they |
2436 // and percent heights of children should be resolved against the multicol o
r paged container. | 2436 // should not impede percentage resolution on a child. Examples of such anon
ymous layout objects |
2437 if (containingBlock->isLayoutFlowThread()) | 2437 // are multicol flow threads and ruby runs. |
| 2438 if (containingBlock->isAnonymous()) |
2438 return true; | 2439 return true; |
2439 | 2440 |
2440 // For quirks mode and anonymous blocks, we skip auto-height containingBlock
s when computing percentages. | 2441 // For quirks mode, we skip most auto-height containing blocks when computin
g percentages. |
2441 // For standards mode, we treat the percentage as auto if it has an auto-hei
ght containing block. | 2442 return document().inQuirksMode() && !containingBlock->isTableCell() && !cont
ainingBlock->isOutOfFlowPositioned() && containingBlock->style()->logicalHeight(
).isAuto(); |
2442 if (!document().inQuirksMode() && !containingBlock->isAnonymousBlock()) | |
2443 return false; | |
2444 | |
2445 return !containingBlock->isTableCell() && !containingBlock->isOutOfFlowPosit
ioned() && containingBlock->style()->logicalHeight().isAuto(); | |
2446 } | 2443 } |
2447 | 2444 |
2448 LayoutUnit LayoutBox::computePercentageLogicalHeight(const Length& height) const | 2445 LayoutUnit LayoutBox::computePercentageLogicalHeight(const Length& height) const |
2449 { | 2446 { |
2450 LayoutUnit availableHeight = -1; | 2447 LayoutUnit availableHeight = -1; |
2451 | 2448 |
2452 bool skippedAutoHeightContainingBlock = false; | 2449 bool skippedAutoHeightContainingBlock = false; |
2453 LayoutBlock* cb = containingBlock(); | 2450 LayoutBlock* cb = containingBlock(); |
2454 const LayoutBox* containingBlockChild = this; | 2451 const LayoutBox* containingBlockChild = this; |
2455 LayoutUnit rootMarginBorderPaddingHeight = 0; | 2452 LayoutUnit rootMarginBorderPaddingHeight = 0; |
(...skipping 2337 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4793 bool LayoutBox::canRenderBorderImage() const | 4790 bool LayoutBox::canRenderBorderImage() const |
4794 { | 4791 { |
4795 if (!style()->hasBorderDecoration()) | 4792 if (!style()->hasBorderDecoration()) |
4796 return false; | 4793 return false; |
4797 | 4794 |
4798 StyleImage* borderImage = style()->borderImage().image(); | 4795 StyleImage* borderImage = style()->borderImage().image(); |
4799 return borderImage && borderImage->canRender(*this, style()->effectiveZoom()
) && borderImage->isLoaded(); | 4796 return borderImage && borderImage->canRender(*this, style()->effectiveZoom()
) && borderImage->isLoaded(); |
4800 } | 4797 } |
4801 | 4798 |
4802 } // namespace blink | 4799 } // namespace blink |
OLD | NEW |