| OLD | NEW | 
|---|
| 1 /* | 1 /* | 
| 2  * Copyright (C) 2009, 2010 Apple Inc. All rights reserved. | 2  * Copyright (C) 2009, 2010 Apple Inc. All rights reserved. | 
| 3  * Copyright (C) Research In Motion Limited 2010. All rights reserved. | 3  * Copyright (C) Research In Motion Limited 2010. All rights reserved. | 
| 4  * | 4  * | 
| 5  * Redistribution and use in source and binary forms, with or without | 5  * Redistribution and use in source and binary forms, with or without | 
| 6  * modification, are permitted provided that the following conditions | 6  * modification, are permitted provided that the following conditions | 
| 7  * are met: | 7  * are met: | 
| 8  * 1. Redistributions of source code must retain the above copyright | 8  * 1. Redistributions of source code must retain the above copyright | 
| 9  *    notice, this list of conditions and the following disclaimer. | 9  *    notice, this list of conditions and the following disclaimer. | 
| 10  * 2. Redistributions in binary form must reproduce the above copyright | 10  * 2. Redistributions in binary form must reproduce the above copyright | 
| (...skipping 23 matching lines...) Expand all  Loading... | 
| 34 #include "RenderView.h" | 34 #include "RenderView.h" | 
| 35 | 35 | 
| 36 namespace WebCore { | 36 namespace WebCore { | 
| 37 | 37 | 
| 38 void RenderObjectChildList::destroyLeftoverChildren() | 38 void RenderObjectChildList::destroyLeftoverChildren() | 
| 39 { | 39 { | 
| 40     while (firstChild()) { | 40     while (firstChild()) { | 
| 41         if (firstChild()->isListMarker() || (firstChild()->style()->styleType() 
     == FIRST_LETTER && !firstChild()->isText())) | 41         if (firstChild()->isListMarker() || (firstChild()->style()->styleType() 
     == FIRST_LETTER && !firstChild()->isText())) | 
| 42             firstChild()->remove();  // List markers are owned by their enclosin
     g list and so don't get destroyed by this container. Similarly, first letters ar
     e destroyed by their remaining text fragment. | 42             firstChild()->remove();  // List markers are owned by their enclosin
     g list and so don't get destroyed by this container. Similarly, first letters ar
     e destroyed by their remaining text fragment. | 
| 43         else if (firstChild()->isRunIn() && firstChild()->node()) { | 43         else if (firstChild()->isRunIn() && firstChild()->node()) { | 
|  | 44             firstChild()->node()->setRenderer(0); | 
| 44             firstChild()->node()->setNeedsStyleRecalc(); | 45             firstChild()->node()->setNeedsStyleRecalc(); | 
| 45             firstChild()->destroy(); | 46             firstChild()->destroy(); | 
| 46         } else { | 47         } else { | 
| 47             // Destroy any anonymous children remaining in the render tree, as w
     ell as implicit (shadow) DOM elements like those used in the engine-based text f
     ields. | 48             // Destroy any anonymous children remaining in the render tree, as w
     ell as implicit (shadow) DOM elements like those used in the engine-based text f
     ields. | 
|  | 49             if (firstChild()->node()) | 
|  | 50                 firstChild()->node()->setRenderer(0); | 
| 48             firstChild()->destroy(); | 51             firstChild()->destroy(); | 
| 49         } | 52         } | 
| 50     } | 53     } | 
| 51 } | 54 } | 
| 52 | 55 | 
| 53 RenderObject* RenderObjectChildList::removeChildNode(RenderObject* owner, Render
     Object* oldChild, bool notifyRenderer) | 56 RenderObject* RenderObjectChildList::removeChildNode(RenderObject* owner, Render
     Object* oldChild, bool notifyRenderer) | 
| 54 { | 57 { | 
| 55     ASSERT(oldChild->parent() == owner); | 58     ASSERT(oldChild->parent() == owner); | 
| 56 | 59 | 
| 57     if (oldChild->isFloatingOrOutOfFlowPositioned()) | 60     if (oldChild->isFloatingOrOutOfFlowPositioned()) | 
| 58         toRenderBox(oldChild)->removeFloatingOrPositionedChildFromBlockLists(); | 61         toRenderBox(oldChild)->removeFloatingOrPositionedChildFromBlockLists(); | 
| 59 | 62 | 
| 60     // So that we'll get the appropriate dirty bit set (either that a normal flo
     w child got yanked or | 63     // So that we'll get the appropriate dirty bit set (either that a normal flo
     w child got yanked or | 
| 61     // that a positioned child got yanked). | 64     // that a positioned child got yanked). We also repaint, so that the area ex
     posed when the child | 
|  | 65     // disappears gets repainted properly. | 
| 62     if (!owner->documentBeingDestroyed() && notifyRenderer && oldChild->everHadL
     ayout()) { | 66     if (!owner->documentBeingDestroyed() && notifyRenderer && oldChild->everHadL
     ayout()) { | 
| 63         oldChild->setNeedsLayoutAndPrefWidthsRecalc(); | 67         oldChild->setNeedsLayoutAndPrefWidthsRecalc(); | 
| 64         // We only repaint |oldChild| if we have a RenderLayer as its visual ove
     rflow may not be tracked by its parent. | 68         // We only repaint |oldChild| if we have a RenderLayer as its visual ove
     rflow may not be tracked by its parent. | 
| 65         if (oldChild->hasLayer()) | 69         if (oldChild->isBody()) | 
|  | 70             owner->view()->repaint(); | 
|  | 71         else | 
| 66             oldChild->repaint(); | 72             oldChild->repaint(); | 
| 67     } | 73     } | 
| 68 | 74 | 
| 69     // If we have a line box wrapper, delete it. | 75     // If we have a line box wrapper, delete it. | 
| 70     if (oldChild->isBox()) | 76     if (oldChild->isBox()) | 
| 71         toRenderBox(oldChild)->deleteLineBoxWrapper(); | 77         toRenderBox(oldChild)->deleteLineBoxWrapper(); | 
| 72 | 78 | 
| 73     // If oldChild is the start or end of the selection, then clear the selectio
     n to | 79     // If oldChild is the start or end of the selection, then clear the selectio
     n to | 
| 74     // avoid problems of invalid pointers. | 80     // avoid problems of invalid pointers. | 
| 75     // FIXME: The FrameSelection should be responsible for this when it | 81     // FIXME: The FrameSelection should be responsible for this when it | 
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 153 | 159 | 
| 154     newChild->setNeedsLayoutAndPrefWidthsRecalc(); | 160     newChild->setNeedsLayoutAndPrefWidthsRecalc(); | 
| 155     if (!owner->normalChildNeedsLayout()) | 161     if (!owner->normalChildNeedsLayout()) | 
| 156         owner->setChildNeedsLayout(true); // We may supply the static position f
     or an absolute positioned child. | 162         owner->setChildNeedsLayout(true); // We may supply the static position f
     or an absolute positioned child. | 
| 157 | 163 | 
| 158     if (AXObjectCache::accessibilityEnabled()) | 164     if (AXObjectCache::accessibilityEnabled()) | 
| 159         owner->document()->axObjectCache()->childrenChanged(owner); | 165         owner->document()->axObjectCache()->childrenChanged(owner); | 
| 160 } | 166 } | 
| 161 | 167 | 
| 162 } // namespace WebCore | 168 } // namespace WebCore | 
| OLD | NEW | 
|---|