| 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) 2000 Dirk Mueller (mueller@kde.org) | 4 * (C) 2000 Dirk Mueller (mueller@kde.org) |
| 5 * (C) 2004 Allan Sandfeld Jensen (kde@carewolf.com) | 5 * (C) 2004 Allan Sandfeld Jensen (kde@carewolf.com) |
| 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2011 Apple Inc. All rights reserv
ed. | 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2011 Apple Inc. All rights reserv
ed. |
| 7 * Copyright (C) 2009 Google Inc. All rights reserved. | 7 * Copyright (C) 2009 Google Inc. All rights reserved. |
| 8 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmo
bile.com/) | 8 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmo
bile.com/) |
| 9 * | 9 * |
| 10 * This library is free software; you can redistribute it and/or | 10 * This library is free software; you can redistribute it and/or |
| (...skipping 1622 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1633 Color RenderObject::selectionEmphasisMarkColor() const | 1633 Color RenderObject::selectionEmphasisMarkColor() const |
| 1634 { | 1634 { |
| 1635 return selectionColor(CSSPropertyWebkitTextEmphasisColor); | 1635 return selectionColor(CSSPropertyWebkitTextEmphasisColor); |
| 1636 } | 1636 } |
| 1637 | 1637 |
| 1638 void RenderObject::selectionStartEnd(int& spos, int& epos) const | 1638 void RenderObject::selectionStartEnd(int& spos, int& epos) const |
| 1639 { | 1639 { |
| 1640 view()->selectionStartEnd(spos, epos); | 1640 view()->selectionStartEnd(spos, epos); |
| 1641 } | 1641 } |
| 1642 | 1642 |
| 1643 void RenderObject::handleDynamicFloatPositionChange() | |
| 1644 { | |
| 1645 // FIXME(sky): Inline this function. | |
| 1646 | |
| 1647 // We have gone from not affecting the inline status of the parent flow to s
uddenly | |
| 1648 // having an impact. See if there is a mismatch between the parent flow's | |
| 1649 // childrenInline() state and our state. | |
| 1650 setInline(style()->isDisplayInlineType()); | |
| 1651 ASSERT(isInline() == parent()->childrenInline()); | |
| 1652 } | |
| 1653 | |
| 1654 StyleDifference RenderObject::adjustStyleDifference(StyleDifference diff) const | 1643 StyleDifference RenderObject::adjustStyleDifference(StyleDifference diff) const |
| 1655 { | 1644 { |
| 1656 // If transform changed, and the layer does not paint into its own separate
backing, then we need to invalidate paints. | 1645 // If transform changed, and the layer does not paint into its own separate
backing, then we need to invalidate paints. |
| 1657 if (diff.transformChanged()) { | 1646 if (diff.transformChanged()) { |
| 1658 // Text nodes share style with their parents but transforms don't apply
to them, | 1647 // Text nodes share style with their parents but transforms don't apply
to them, |
| 1659 // hence the !isText() check. | 1648 // hence the !isText() check. |
| 1660 if (!isText() && (!hasLayer() || !toRenderLayerModelObject(this)->layer(
)->hasStyleDeterminedDirectCompositingReasons())) | 1649 if (!isText() && (!hasLayer() || !toRenderLayerModelObject(this)->layer(
)->hasStyleDeterminedDirectCompositingReasons())) |
| 1661 diff.setNeedsPaintInvalidationLayer(); | 1650 diff.setNeedsPaintInvalidationLayer(); |
| 1662 } | 1651 } |
| 1663 | 1652 |
| (...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1806 return a->cursors() && b->cursors() && *a->cursors() == *b->cursors(); | 1795 return a->cursors() && b->cursors() && *a->cursors() == *b->cursors(); |
| 1807 } | 1796 } |
| 1808 | 1797 |
| 1809 static inline bool areCursorsEqual(const RenderStyle* a, const RenderStyle* b) | 1798 static inline bool areCursorsEqual(const RenderStyle* a, const RenderStyle* b) |
| 1810 { | 1799 { |
| 1811 return a->cursor() == b->cursor() && (a->cursors() == b->cursors() || areNon
IdenticalCursorListsEqual(a, b)); | 1800 return a->cursor() == b->cursor() && (a->cursors() == b->cursors() || areNon
IdenticalCursorListsEqual(a, b)); |
| 1812 } | 1801 } |
| 1813 | 1802 |
| 1814 void RenderObject::styleDidChange(StyleDifference diff, const RenderStyle* oldSt
yle) | 1803 void RenderObject::styleDidChange(StyleDifference diff, const RenderStyle* oldSt
yle) |
| 1815 { | 1804 { |
| 1816 if (s_affectsParentBlock) | 1805 if (s_affectsParentBlock) { |
| 1817 handleDynamicFloatPositionChange(); | 1806 // An object that was floating or positioned became a normal flow object
again. We have to make sure the |
| 1807 // render tree updates as needed to accommodate the new normal flow obje
ct. |
| 1808 setInline(style()->isDisplayInlineType()); |
| 1809 ASSERT(isInline() == parent()->isRenderParagraph()); |
| 1810 } |
| 1818 | 1811 |
| 1819 if (!m_parent) | 1812 if (!m_parent) |
| 1820 return; | 1813 return; |
| 1821 | 1814 |
| 1822 if (diff.needsFullLayout()) { | 1815 if (diff.needsFullLayout()) { |
| 1823 // If the object already needs layout, then setNeedsLayout won't do | 1816 // If the object already needs layout, then setNeedsLayout won't do |
| 1824 // any work. But if the containing block has changed, then we may need | 1817 // any work. But if the containing block has changed, then we may need |
| 1825 // to mark the new containing blocks for layout. The change that can | 1818 // to mark the new containing blocks for layout. The change that can |
| 1826 // directly affect the containing block of this object is a change to | 1819 // directly affect the containing block of this object is a change to |
| 1827 // the position style. | 1820 // the position style. |
| (...skipping 343 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2171 // FIXME: We should ASSERT(isRooted()) here but generated content makes some
out-of-order insertion. | 2164 // FIXME: We should ASSERT(isRooted()) here but generated content makes some
out-of-order insertion. |
| 2172 | 2165 |
| 2173 // Keep our layer hierarchy updated. Optimize for the common case where we d
on't have any children | 2166 // Keep our layer hierarchy updated. Optimize for the common case where we d
on't have any children |
| 2174 // and don't have a layer attached to ourselves. | 2167 // and don't have a layer attached to ourselves. |
| 2175 RenderLayer* layer = 0; | 2168 RenderLayer* layer = 0; |
| 2176 if (slowFirstChild() || hasLayer()) { | 2169 if (slowFirstChild() || hasLayer()) { |
| 2177 layer = parent()->enclosingLayer(); | 2170 layer = parent()->enclosingLayer(); |
| 2178 addLayers(layer); | 2171 addLayers(layer); |
| 2179 } | 2172 } |
| 2180 | 2173 |
| 2181 if (parent()->childrenInline()) | 2174 if (parent()->isRenderParagraph()) |
| 2182 parent()->dirtyLinesFromChangedChild(this); | 2175 parent()->dirtyLinesFromChangedChild(this); |
| 2183 } | 2176 } |
| 2184 | 2177 |
| 2185 void RenderObject::willBeRemovedFromTree() | 2178 void RenderObject::willBeRemovedFromTree() |
| 2186 { | 2179 { |
| 2187 // FIXME: We should ASSERT(isRooted()) but we have some out-of-order removal
s which would need to be fixed first. | 2180 // FIXME: We should ASSERT(isRooted()) but we have some out-of-order removal
s which would need to be fixed first. |
| 2188 | 2181 |
| 2189 // Keep our layer hierarchy updated. | 2182 // Keep our layer hierarchy updated. |
| 2190 if (slowFirstChild() || hasLayer()) | 2183 if (slowFirstChild() || hasLayer()) |
| 2191 removeLayers(parent()->enclosingLayer()); | 2184 removeLayers(parent()->enclosingLayer()); |
| 2192 | 2185 |
| 2193 if (isOutOfFlowPositioned() && parent()->childrenInline()) | 2186 if (isOutOfFlowPositioned() && parent()->isRenderParagraph()) |
| 2194 parent()->dirtyLinesFromChangedChild(this); | 2187 parent()->dirtyLinesFromChangedChild(this); |
| 2195 } | 2188 } |
| 2196 | 2189 |
| 2197 void RenderObject::destroyAndCleanupAnonymousWrappers() | 2190 void RenderObject::destroyAndCleanupAnonymousWrappers() |
| 2198 { | 2191 { |
| 2199 // If the tree is destroyed, there is no need for a clean-up phase. | 2192 // If the tree is destroyed, there is no need for a clean-up phase. |
| 2200 if (documentBeingDestroyed()) { | 2193 if (documentBeingDestroyed()) { |
| 2201 destroy(); | 2194 destroy(); |
| 2202 return; | 2195 return; |
| 2203 } | 2196 } |
| (...skipping 406 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2610 { | 2603 { |
| 2611 if (object1) { | 2604 if (object1) { |
| 2612 const blink::RenderObject* root = object1; | 2605 const blink::RenderObject* root = object1; |
| 2613 while (root->parent()) | 2606 while (root->parent()) |
| 2614 root = root->parent(); | 2607 root = root->parent(); |
| 2615 root->showRenderTreeAndMark(object1, "*", object2, "-", 0); | 2608 root->showRenderTreeAndMark(object1, "*", object2, "-", 0); |
| 2616 } | 2609 } |
| 2617 } | 2610 } |
| 2618 | 2611 |
| 2619 #endif | 2612 #endif |
| OLD | NEW |