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 318 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
329 return !isTable(); | 329 return !isTable(); |
330 else if (newChild->isTableSection()) | 330 else if (newChild->isTableSection()) |
331 return !isTable(); | 331 return !isTable(); |
332 else if (newChild->isTableRow()) | 332 else if (newChild->isTableRow()) |
333 return !isTableSection(); | 333 return !isTableSection(); |
334 else if (newChild->isTableCell()) | 334 else if (newChild->isTableCell()) |
335 return !isTableRow(); | 335 return !isTableRow(); |
336 return false; | 336 return false; |
337 } | 337 } |
338 | 338 |
| 339 bool RenderObject::isValidColumnSpanAll() const |
| 340 { |
| 341 ASSERT(style()->columnSpan() == ColumnSpanAll); |
| 342 RenderFlowThread* flowThread = flowThreadContainingBlock(); |
| 343 return flowThread && flowThread->isColumnSpanner(this); |
| 344 } |
| 345 |
339 void RenderObject::addChild(RenderObject* newChild, RenderObject* beforeChild) | 346 void RenderObject::addChild(RenderObject* newChild, RenderObject* beforeChild) |
340 { | 347 { |
341 ASSERT(isAllowedToModifyRenderTreeStructure(document())); | 348 ASSERT(isAllowedToModifyRenderTreeStructure(document())); |
342 | 349 |
343 RenderObjectChildList* children = virtualChildren(); | 350 RenderObjectChildList* children = virtualChildren(); |
344 ASSERT(children); | 351 ASSERT(children); |
345 if (!children) | 352 if (!children) |
346 return; | 353 return; |
347 | 354 |
348 if (requiresAnonymousTableWrappers(newChild)) { | 355 if (requiresAnonymousTableWrappers(newChild)) { |
(...skipping 2393 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2742 // that needs to be drawn and layer visibility optimization can't be used | 2749 // that needs to be drawn and layer visibility optimization can't be used |
2743 if (parent()->style()->visibility() != VISIBLE && style()->visibility() == V
ISIBLE && !hasLayer()) { | 2750 if (parent()->style()->visibility() != VISIBLE && style()->visibility() == V
ISIBLE && !hasLayer()) { |
2744 if (!layer) | 2751 if (!layer) |
2745 layer = parent()->enclosingLayer(); | 2752 layer = parent()->enclosingLayer(); |
2746 if (layer) | 2753 if (layer) |
2747 layer->dirtyVisibleContentStatus(); | 2754 layer->dirtyVisibleContentStatus(); |
2748 } | 2755 } |
2749 | 2756 |
2750 if (!isFloating() && parent()->childrenInline()) | 2757 if (!isFloating() && parent()->childrenInline()) |
2751 parent()->dirtyLinesFromChangedChild(this); | 2758 parent()->dirtyLinesFromChangedChild(this); |
| 2759 |
| 2760 if (RenderFlowThread* flowThread = parent()->flowThreadContainingBlock()) |
| 2761 flowThread->flowThreadDescendantInserted(this); |
2752 } | 2762 } |
2753 | 2763 |
2754 void RenderObject::willBeRemovedFromTree() | 2764 void RenderObject::willBeRemovedFromTree() |
2755 { | 2765 { |
2756 // FIXME: We should ASSERT(isRooted()) but we have some out-of-order removal
s which would need to be fixed first. | 2766 // FIXME: We should ASSERT(isRooted()) but we have some out-of-order removal
s which would need to be fixed first. |
2757 | 2767 |
2758 // If we remove a visible child from an invisible parent, we don't know the
layer visibility any more. | 2768 // If we remove a visible child from an invisible parent, we don't know the
layer visibility any more. |
2759 RenderLayer* layer = 0; | 2769 RenderLayer* layer = 0; |
2760 if (parent()->style()->visibility() != VISIBLE && style()->visibility() == V
ISIBLE && !hasLayer()) { | 2770 if (parent()->style()->visibility() != VISIBLE && style()->visibility() == V
ISIBLE && !hasLayer()) { |
2761 layer = parent()->enclosingLayer(); | 2771 layer = parent()->enclosingLayer(); |
(...skipping 30 matching lines...) Expand all Loading... |
2792 removeFromRenderFlowThreadRecursive(flowThreadContainingBlock()); | 2802 removeFromRenderFlowThreadRecursive(flowThreadContainingBlock()); |
2793 } | 2803 } |
2794 | 2804 |
2795 void RenderObject::removeFromRenderFlowThreadRecursive(RenderFlowThread* renderF
lowThread) | 2805 void RenderObject::removeFromRenderFlowThreadRecursive(RenderFlowThread* renderF
lowThread) |
2796 { | 2806 { |
2797 if (const RenderObjectChildList* children = virtualChildren()) { | 2807 if (const RenderObjectChildList* children = virtualChildren()) { |
2798 for (RenderObject* child = children->firstChild(); child; child = child-
>nextSibling()) | 2808 for (RenderObject* child = children->firstChild(); child; child = child-
>nextSibling()) |
2799 child->removeFromRenderFlowThreadRecursive(renderFlowThread); | 2809 child->removeFromRenderFlowThreadRecursive(renderFlowThread); |
2800 } | 2810 } |
2801 | 2811 |
| 2812 if (renderFlowThread && renderFlowThread != this) |
| 2813 renderFlowThread->flowThreadDescendantWillBeRemoved(this); |
2802 setFlowThreadState(NotInsideFlowThread); | 2814 setFlowThreadState(NotInsideFlowThread); |
2803 } | 2815 } |
2804 | 2816 |
2805 void RenderObject::destroyAndCleanupAnonymousWrappers() | 2817 void RenderObject::destroyAndCleanupAnonymousWrappers() |
2806 { | 2818 { |
2807 // If the tree is destroyed, there is no need for a clean-up phase. | 2819 // If the tree is destroyed, there is no need for a clean-up phase. |
2808 if (documentBeingDestroyed()) { | 2820 if (documentBeingDestroyed()) { |
2809 destroy(); | 2821 destroy(); |
2810 return; | 2822 return; |
2811 } | 2823 } |
(...skipping 707 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3519 { | 3531 { |
3520 if (object1) { | 3532 if (object1) { |
3521 const blink::RenderObject* root = object1; | 3533 const blink::RenderObject* root = object1; |
3522 while (root->parent()) | 3534 while (root->parent()) |
3523 root = root->parent(); | 3535 root = root->parent(); |
3524 root->showRenderTreeAndMark(object1, "*", object2, "-", 0); | 3536 root->showRenderTreeAndMark(object1, "*", object2, "-", 0); |
3525 } | 3537 } |
3526 } | 3538 } |
3527 | 3539 |
3528 #endif | 3540 #endif |
OLD | NEW |