| 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 255 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 266 if (LayoutMultiColumnSpannerPlaceholder* placeholder = this->spannerPlacehol
der()) | 266 if (LayoutMultiColumnSpannerPlaceholder* placeholder = this->spannerPlacehol
der()) |
| 267 placeholder->layoutObjectInFlowThreadStyleDidChange(oldStyle); | 267 placeholder->layoutObjectInFlowThreadStyleDidChange(oldStyle); |
| 268 | 268 |
| 269 updateBackgroundAttachmentFixedStatusAfterStyleChange(); | 269 updateBackgroundAttachmentFixedStatusAfterStyleChange(); |
| 270 | 270 |
| 271 if (oldStyle) { | 271 if (oldStyle) { |
| 272 LayoutFlowThread* flowThread = flowThreadContainingBlock(); | 272 LayoutFlowThread* flowThread = flowThreadContainingBlock(); |
| 273 if (flowThread && flowThread != this) | 273 if (flowThread && flowThread != this) |
| 274 flowThread->flowThreadDescendantStyleDidChange(this, diff, *oldStyle
); | 274 flowThread->flowThreadDescendantStyleDidChange(this, diff, *oldStyle
); |
| 275 } | 275 } |
| 276 |
| 277 ASSERT(!isInline() || isAtomicInlineLevel()); // Non-atomic inlines should b
e LayoutInline or LayoutText, not LayoutBox. |
| 276 } | 278 } |
| 277 | 279 |
| 278 void LayoutBox::updateBackgroundAttachmentFixedStatusAfterStyleChange() | 280 void LayoutBox::updateBackgroundAttachmentFixedStatusAfterStyleChange() |
| 279 { | 281 { |
| 280 if (!frameView()) | 282 if (!frameView()) |
| 281 return; | 283 return; |
| 282 | 284 |
| 283 // On low-powered/mobile devices, preventing blitting on a scroll can cause
noticeable delays | 285 // On low-powered/mobile devices, preventing blitting on a scroll can cause
noticeable delays |
| 284 // when scrolling a page with a fixed background image. As an optimization,
assuming there are | 286 // when scrolling a page with a fixed background image. As an optimization,
assuming there are |
| 285 // no fixed positoned elements on the page, we can acclerate scrolling (via
blitting) if we | 287 // no fixed positoned elements on the page, we can acclerate scrolling (via
blitting) if we |
| (...skipping 1437 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1723 } | 1725 } |
| 1724 | 1726 |
| 1725 LayoutSize LayoutBox::offsetFromContainer(const LayoutObject* o, const LayoutPoi
nt& point, bool* offsetDependsOnPoint) const | 1727 LayoutSize LayoutBox::offsetFromContainer(const LayoutObject* o, const LayoutPoi
nt& point, bool* offsetDependsOnPoint) const |
| 1726 { | 1728 { |
| 1727 ASSERT(o == container()); | 1729 ASSERT(o == container()); |
| 1728 | 1730 |
| 1729 LayoutSize offset; | 1731 LayoutSize offset; |
| 1730 if (isInFlowPositioned()) | 1732 if (isInFlowPositioned()) |
| 1731 offset += offsetForInFlowPosition(); | 1733 offset += offsetForInFlowPosition(); |
| 1732 | 1734 |
| 1733 if (!isInline() || isAtomicInlineLevel()) { | 1735 offset += topLeftLocationOffset(); |
| 1734 offset += topLeftLocationOffset(); | 1736 if (o->isLayoutFlowThread()) { |
| 1735 if (o->isLayoutFlowThread()) { | 1737 // So far the point has been in flow thread coordinates (i.e. as if ever
ything in |
| 1736 // So far the point has been in flow thread coordinates (i.e. as if
everything in | 1738 // the fragmentation context lived in one tall single column). Convert i
t to a |
| 1737 // the fragmentation context lived in one tall single column). Conve
rt it to a | 1739 // visual point now. |
| 1738 // visual point now. | 1740 LayoutPoint pointInContainer = point + offset; |
| 1739 LayoutPoint pointInContainer = point + offset; | 1741 offset += o->columnOffset(pointInContainer); |
| 1740 offset += o->columnOffset(pointInContainer); | 1742 if (offsetDependsOnPoint) |
| 1741 if (offsetDependsOnPoint) | 1743 *offsetDependsOnPoint = true; |
| 1742 *offsetDependsOnPoint = true; | |
| 1743 } | |
| 1744 } | 1744 } |
| 1745 | 1745 |
| 1746 if (o->hasOverflowClip()) | 1746 if (o->hasOverflowClip()) |
| 1747 offset -= toLayoutBox(o)->scrolledContentOffset(); | 1747 offset -= toLayoutBox(o)->scrolledContentOffset(); |
| 1748 | 1748 |
| 1749 if (style()->position() == AbsolutePosition && o->isInFlowPositioned() && o-
>isLayoutInline()) | 1749 if (style()->position() == AbsolutePosition && o->isInFlowPositioned() && o-
>isLayoutInline()) |
| 1750 offset += toLayoutInline(o)->offsetForInFlowPositionedInline(*this); | 1750 offset += toLayoutInline(o)->offsetForInFlowPositionedInline(*this); |
| 1751 | 1751 |
| 1752 return offset; | 1752 return offset; |
| 1753 } | 1753 } |
| (...skipping 631 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2385 setLogicalTop(computedValues.m_position); | 2385 setLogicalTop(computedValues.m_position); |
| 2386 setMarginBefore(computedValues.m_margins.m_before); | 2386 setMarginBefore(computedValues.m_margins.m_before); |
| 2387 setMarginAfter(computedValues.m_margins.m_after); | 2387 setMarginAfter(computedValues.m_margins.m_after); |
| 2388 } | 2388 } |
| 2389 | 2389 |
| 2390 void LayoutBox::computeLogicalHeight(LayoutUnit logicalHeight, LayoutUnit logica
lTop, LogicalExtentComputedValues& computedValues) const | 2390 void LayoutBox::computeLogicalHeight(LayoutUnit logicalHeight, LayoutUnit logica
lTop, LogicalExtentComputedValues& computedValues) const |
| 2391 { | 2391 { |
| 2392 computedValues.m_extent = logicalHeight; | 2392 computedValues.m_extent = logicalHeight; |
| 2393 computedValues.m_position = logicalTop; | 2393 computedValues.m_position = logicalTop; |
| 2394 | 2394 |
| 2395 // Cell height is managed by the table and non-atomic inline-level elements
do not support a height property. | 2395 // Cell height is managed by the table. |
| 2396 if (isTableCell() || (isInline() && !isAtomicInlineLevel())) | 2396 if (isTableCell()) |
| 2397 return; | 2397 return; |
| 2398 | 2398 |
| 2399 Length h; | 2399 Length h; |
| 2400 if (isOutOfFlowPositioned()) { | 2400 if (isOutOfFlowPositioned()) { |
| 2401 computePositionedLogicalHeight(computedValues); | 2401 computePositionedLogicalHeight(computedValues); |
| 2402 } else { | 2402 } else { |
| 2403 LayoutBlock* cb = containingBlock(); | 2403 LayoutBlock* cb = containingBlock(); |
| 2404 | 2404 |
| 2405 // If we are perpendicular to our containing block then we need to resol
ve our block-start and block-end margins so that if they | 2405 // If we are perpendicular to our containing block then we need to resol
ve our block-start and block-end margins so that if they |
| 2406 // are 'auto' we are centred or aligned within the inline flow containin
g block: this is done by computing the margins as though they are inline. | 2406 // are 'auto' we are centred or aligned within the inline flow containin
g block: this is done by computing the margins as though they are inline. |
| (...skipping 2236 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4643 | 4643 |
| 4644 void LayoutBox::clearPercentHeightDescendants() | 4644 void LayoutBox::clearPercentHeightDescendants() |
| 4645 { | 4645 { |
| 4646 for (LayoutObject* curr = slowFirstChild(); curr; curr = curr->nextInPreOrde
r(this)) { | 4646 for (LayoutObject* curr = slowFirstChild(); curr; curr = curr->nextInPreOrde
r(this)) { |
| 4647 if (curr->isBox()) | 4647 if (curr->isBox()) |
| 4648 toLayoutBox(curr)->removeFromPercentHeightContainer(); | 4648 toLayoutBox(curr)->removeFromPercentHeightContainer(); |
| 4649 } | 4649 } |
| 4650 } | 4650 } |
| 4651 | 4651 |
| 4652 } // namespace blink | 4652 } // namespace blink |
| OLD | NEW |