| 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 2041 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2052 setNeedsLayoutAndPrefWidthsRecalc(); | 2052 setNeedsLayoutAndPrefWidthsRecalc(); |
| 2053 else if (updatedDiff.needsPositionedMovementLayout()) | 2053 else if (updatedDiff.needsPositionedMovementLayout()) |
| 2054 setNeedsPositionedMovementLayout(); | 2054 setNeedsPositionedMovementLayout(); |
| 2055 } | 2055 } |
| 2056 | 2056 |
| 2057 if (diff.transformChanged() && !needsLayout()) { | 2057 if (diff.transformChanged() && !needsLayout()) { |
| 2058 if (RenderBlock* container = containingBlock()) | 2058 if (RenderBlock* container = containingBlock()) |
| 2059 container->setNeedsOverflowRecalcAfterStyleChange(); | 2059 container->setNeedsOverflowRecalcAfterStyleChange(); |
| 2060 } | 2060 } |
| 2061 | 2061 |
| 2062 if (updatedDiff.needsRepaint()) { | 2062 if (updatedDiff.needsRepaintLayer()) { |
| 2063 // Invalidate paints with the new style, e.g., for example if we go from
not having | 2063 toRenderLayerModelObject(this)->layer()->setShouldDoFullPaintInvalidatio
nIncludingNonCompositingDescendants(); |
| 2064 // an outline to having an outline. | 2064 } else if (updatedDiff.needsRepaint()) { |
| 2065 | 2065 // FIXME: For objects whose invalidateTreeIfNeeded won't invalidate them
selves, |
| 2066 // The paintInvalidationForWholeRenderer() call is needed for non-layout
changes to style. See the corresponding | 2066 // we still need to invalidate now. crbug.com/394133. |
| 2067 // comment in RenderObject::styleWillChange for why. | 2067 if (needsLayout() || canSelfInvalidateDuringTreeInvalidation()) |
| 2068 if (needsLayout()) | |
| 2069 setShouldDoFullPaintInvalidation(true); | 2068 setShouldDoFullPaintInvalidation(true); |
| 2070 else if (!selfNeedsLayout()) | 2069 else |
| 2071 paintInvalidationForWholeRenderer(); | 2070 paintInvalidationForWholeRenderer(); |
| 2072 } | 2071 } |
| 2073 } | 2072 } |
| 2074 | 2073 |
| 2075 static inline bool rendererHasBackground(const RenderObject* renderer) | 2074 static inline bool rendererHasBackground(const RenderObject* renderer) |
| 2076 { | 2075 { |
| 2077 return renderer && renderer->hasBackground(); | 2076 return renderer && renderer->hasBackground(); |
| 2078 } | 2077 } |
| 2079 | 2078 |
| 2080 void RenderObject::styleWillChange(StyleDifference diff, const RenderStyle& newS
tyle) | 2079 void RenderObject::styleWillChange(StyleDifference diff, const RenderStyle& newS
tyle) |
| (...skipping 15 matching lines...) Expand all Loading... |
| 2096 // We might not have an enclosing layer yet because we might not be
in the tree. | 2095 // We might not have an enclosing layer yet because we might not be
in the tree. |
| 2097 if (RenderLayer* layer = enclosingLayer()) { | 2096 if (RenderLayer* layer = enclosingLayer()) { |
| 2098 if (newStyle.visibility() == VISIBLE) { | 2097 if (newStyle.visibility() == VISIBLE) { |
| 2099 layer->setHasVisibleContent(); | 2098 layer->setHasVisibleContent(); |
| 2100 } else if (layer->hasVisibleContent() && (this == layer->rendere
r() || layer->renderer()->style()->visibility() != VISIBLE)) { | 2099 } else if (layer->hasVisibleContent() && (this == layer->rendere
r() || layer->renderer()->style()->visibility() != VISIBLE)) { |
| 2101 layer->dirtyVisibleContentStatus(); | 2100 layer->dirtyVisibleContentStatus(); |
| 2102 } | 2101 } |
| 2103 } | 2102 } |
| 2104 } | 2103 } |
| 2105 | 2104 |
| 2106 // For style-only changes that need paint invalidation, we currently nee
d to issue a paint invalidation before and after the style | |
| 2107 // change. The paint invalidation before style change is accomplished he
re. The paint invalidation after style change is accomplished | |
| 2108 // in RenderObject::setStyle. | |
| 2109 if (m_parent && diff.needsRepaintObject()) { | 2105 if (m_parent && diff.needsRepaintObject()) { |
| 2110 if (!diff.needsLayout() && !needsLayout()) | 2106 if (!diff.needsLayout() && !needsLayout()) { |
| 2111 paintInvalidationForWholeRenderer(); | 2107 // Invalidate before style change. |
| 2108 // FIXME: See FIXMEs in setStyle() before calling paintInvalidat
ionForWholeRenderer |
| 2109 // for the reason of this paintInvalidationForWholeRenderer. |
| 2110 if (!canSelfInvalidateDuringTreeInvalidation()) |
| 2111 paintInvalidationForWholeRenderer(); |
| 2112 } |
| 2112 } | 2113 } |
| 2113 | 2114 |
| 2114 if (isFloating() && (m_style->floating() != newStyle.floating())) | 2115 if (isFloating() && (m_style->floating() != newStyle.floating())) |
| 2115 // For changes in float styles, we need to conceivably remove oursel
ves | 2116 // For changes in float styles, we need to conceivably remove oursel
ves |
| 2116 // from the floating objects list. | 2117 // from the floating objects list. |
| 2117 toRenderBox(this)->removeFloatingOrPositionedChildFromBlockLists(); | 2118 toRenderBox(this)->removeFloatingOrPositionedChildFromBlockLists(); |
| 2118 else if (isOutOfFlowPositioned() && (m_style->position() != newStyle.pos
ition())) | 2119 else if (isOutOfFlowPositioned() && (m_style->position() != newStyle.pos
ition())) |
| 2119 // For changes in positioning styles, we need to conceivably remove
ourselves | 2120 // For changes in positioning styles, we need to conceivably remove
ourselves |
| 2120 // from the positioned objects list. | 2121 // from the positioned objects list. |
| 2121 toRenderBox(this)->removeFloatingOrPositionedChildFromBlockLists(); | 2122 toRenderBox(this)->removeFloatingOrPositionedChildFromBlockLists(); |
| (...skipping 1331 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3453 { | 3454 { |
| 3454 if (object1) { | 3455 if (object1) { |
| 3455 const blink::RenderObject* root = object1; | 3456 const blink::RenderObject* root = object1; |
| 3456 while (root->parent()) | 3457 while (root->parent()) |
| 3457 root = root->parent(); | 3458 root = root->parent(); |
| 3458 root->showRenderTreeAndMark(object1, "*", object2, "-", 0); | 3459 root->showRenderTreeAndMark(object1, "*", object2, "-", 0); |
| 3459 } | 3460 } |
| 3460 } | 3461 } |
| 3461 | 3462 |
| 3462 #endif | 3463 #endif |
| OLD | NEW |