| 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) 2007 David Smith (catfish.man@gmail.com) | 4 * (C) 2007 David Smith (catfish.man@gmail.com) |
| 5 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc.
All rights reserved. | 5 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc.
All rights reserved. |
| 6 * Copyright (C) Research In Motion Limited 2010. All rights reserved. | 6 * Copyright (C) Research In Motion Limited 2010. All rights reserved. |
| 7 * | 7 * |
| 8 * This library is free software; you can redistribute it and/or | 8 * This library is free software; you can redistribute it and/or |
| 9 * modify it under the terms of the GNU Library General Public | 9 * modify it under the terms of the GNU Library General Public |
| 10 * License as published by the Free Software Foundation; either | 10 * License as published by the Free Software Foundation; either |
| (...skipping 626 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 637 return; | 637 return; |
| 638 parent->setNeedsLayoutAndPrefWidthsRecalcAndFullPaintInvalidation(LayoutInva
lidationReason::ChildAnonymousBlockChanged); | 638 parent->setNeedsLayoutAndPrefWidthsRecalcAndFullPaintInvalidation(LayoutInva
lidationReason::ChildAnonymousBlockChanged); |
| 639 | 639 |
| 640 child->moveAllChildrenTo(parent, child->nextSibling(), child->hasLayer()); | 640 child->moveAllChildrenTo(parent, child->nextSibling(), child->hasLayer()); |
| 641 parent->setChildrenInline(child->childrenInline()); | 641 parent->setChildrenInline(child->childrenInline()); |
| 642 | 642 |
| 643 parent->children()->removeChildNode(parent, child, child->hasLayer()); | 643 parent->children()->removeChildNode(parent, child, child->hasLayer()); |
| 644 child->destroy(); | 644 child->destroy(); |
| 645 } | 645 } |
| 646 | 646 |
| 647 void LayoutBlock::removeChild(LayoutObject* oldChild) | |
| 648 { | |
| 649 // No need to waste time in merging or removing empty anonymous blocks. | |
| 650 // We can just bail out if our document is getting destroyed. | |
| 651 if (documentBeingDestroyed()) { | |
| 652 LayoutBox::removeChild(oldChild); | |
| 653 return; | |
| 654 } | |
| 655 | |
| 656 // If this child is a block, and if our previous and next siblings are | |
| 657 // both anonymous blocks with inline content, then we can go ahead and | |
| 658 // fold the inline content back together. | |
| 659 LayoutObject* prev = oldChild->previousSibling(); | |
| 660 LayoutObject* next = oldChild->nextSibling(); | |
| 661 bool mergedAnonymousBlocks = false; | |
| 662 if (prev && next && !oldChild->isInline() && !oldChild->virtualContinuation(
) && prev->isLayoutBlockFlow() && next->isLayoutBlockFlow()) { | |
| 663 if (toLayoutBlockFlow(prev)->mergeSiblingContiguousAnonymousBlock(toLayo
utBlockFlow(next))) { | |
| 664 mergedAnonymousBlocks = true; | |
| 665 next = nullptr; | |
| 666 } | |
| 667 } | |
| 668 | |
| 669 LayoutBox::removeChild(oldChild); | |
| 670 | |
| 671 LayoutObject* child = prev ? prev : next; | |
| 672 if (mergedAnonymousBlocks && child && !child->previousSibling() && !child->n
extSibling()) { | |
| 673 // The removal has knocked us down to containing only a single anonymous | |
| 674 // box. We can go ahead and pull the content right back up into our | |
| 675 // box. | |
| 676 collapseAnonymousBlockChild(this, toLayoutBlock(child)); | |
| 677 } | |
| 678 } | |
| 679 | |
| 680 void LayoutBlock::startDelayUpdateScrollInfo() | 647 void LayoutBlock::startDelayUpdateScrollInfo() |
| 681 { | 648 { |
| 682 if (gDelayUpdateScrollInfo == 0) { | 649 if (gDelayUpdateScrollInfo == 0) { |
| 683 ASSERT(!gDelayedUpdateScrollInfoSet); | 650 ASSERT(!gDelayedUpdateScrollInfoSet); |
| 684 gDelayedUpdateScrollInfoSet = new DelayedUpdateScrollInfoSet; | 651 gDelayedUpdateScrollInfoSet = new DelayedUpdateScrollInfoSet; |
| 685 } | 652 } |
| 686 ASSERT(gDelayedUpdateScrollInfoSet); | 653 ASSERT(gDelayedUpdateScrollInfoSet); |
| 687 ++gDelayUpdateScrollInfo; | 654 ++gDelayUpdateScrollInfo; |
| 688 } | 655 } |
| 689 | 656 |
| (...skipping 1553 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2243 for (TrackedLayoutBoxListHashSet::const_iterator it = positionedDescenda
ntSet->begin(); it != end; ++it) { | 2210 for (TrackedLayoutBoxListHashSet::const_iterator it = positionedDescenda
ntSet->begin(); it != end; ++it) { |
| 2244 LayoutBox* currBox = *it; | 2211 LayoutBox* currBox = *it; |
| 2245 ASSERT(!currBox->needsLayout()); | 2212 ASSERT(!currBox->needsLayout()); |
| 2246 } | 2213 } |
| 2247 } | 2214 } |
| 2248 } | 2215 } |
| 2249 | 2216 |
| 2250 #endif | 2217 #endif |
| 2251 | 2218 |
| 2252 } // namespace blink | 2219 } // namespace blink |
| OLD | NEW |