Chromium Code Reviews| 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 431 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 442 if (afterChild && afterChild->isAnonymousBlock()) { | 442 if (afterChild && afterChild->isAnonymousBlock()) { |
| 443 afterChild->addChild(newChild); | 443 afterChild->addChild(newChild); |
| 444 return; | 444 return; |
| 445 } | 445 } |
| 446 | 446 |
| 447 if (newChild->isInline()) { | 447 if (newChild->isInline()) { |
| 448 // No suitable existing anonymous box - create a new one. | 448 // No suitable existing anonymous box - create a new one. |
| 449 LayoutBlock* newBox = createAnonymousBlock(); | 449 LayoutBlock* newBox = createAnonymousBlock(); |
| 450 LayoutBox::addChild(newBox, beforeChild); | 450 LayoutBox::addChild(newBox, beforeChild); |
| 451 newBox->addChild(newChild); | 451 newBox->addChild(newChild); |
| 452 LayoutObject* nextChild = beforeChild; | |
| 453 // Reparent adjacent inline siblings to the new box. | |
|
mstensho (USE GERRIT)
2015/08/26 19:44:15
As szager has already pointed out, how could there
| |
| 454 while (nextChild && (nextChild->isFloatingOrOutOfFlowPositioned() || nextChild->isInline() || nextChild->isAnonymousBlock())) { | |
|
szager1
2015/08/26 17:04:40
nextChild->isInline() should never be true here
| |
| 455 LayoutObject* sibling = nextChild->nextSibling(); | |
| 456 if (nextChild->isAnonymousBlock()) { | |
| 457 LayoutBlockFlow* nextBlock = toLayoutBlockFlow(nextChild); | |
| 458 nextBlock->moveAllChildrenIncludingFloatsTo(newBox, true); | |
| 459 // Delete the now-empty block's lines and nuke it. | |
| 460 nextBlock->deleteLineBoxTree(); | |
|
szager1
2015/08/26 17:04:40
Redundant? nextBlock->moveAllChildrenIncludingFlo
| |
| 461 nextBlock->destroy(); | |
| 462 } else { | |
| 463 moveChildTo(newBox, nextChild, 0, true); | |
| 464 } | |
| 465 nextChild = sibling; | |
| 466 } | |
| 452 return; | 467 return; |
| 453 } | 468 } |
| 454 } | 469 } |
| 455 | 470 |
| 456 LayoutBox::addChild(newChild, beforeChild); | 471 LayoutBox::addChild(newChild, beforeChild); |
| 457 | 472 |
| 458 if (madeBoxesNonInline && parent() && isAnonymousBlock() && parent()->isLayo utBlock()) | 473 if (madeBoxesNonInline && parent() && isAnonymousBlock() && parent()->isLayo utBlock()) |
| 459 toLayoutBlock(parent())->removeLeftoverAnonymousBlock(this); | 474 toLayoutBlock(parent())->removeLeftoverAnonymousBlock(this); |
| 460 // this object may be dead here | 475 // this object may be dead here |
| 461 } | 476 } |
| (...skipping 2456 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2918 void LayoutBlock::showLineTreeAndMark(const InlineBox* markedBox1, const char* m arkedLabel1, const InlineBox* markedBox2, const char* markedLabel2, const Layout Object* obj) const | 2933 void LayoutBlock::showLineTreeAndMark(const InlineBox* markedBox1, const char* m arkedLabel1, const InlineBox* markedBox2, const char* markedLabel2, const Layout Object* obj) const |
| 2919 { | 2934 { |
| 2920 showLayoutObject(); | 2935 showLayoutObject(); |
| 2921 for (const RootInlineBox* root = firstRootBox(); root; root = root->nextRoot Box()) | 2936 for (const RootInlineBox* root = firstRootBox(); root; root = root->nextRoot Box()) |
| 2922 root->showLineTreeAndMark(markedBox1, markedLabel1, markedBox2, markedLa bel2, obj, 1); | 2937 root->showLineTreeAndMark(markedBox1, markedLabel1, markedBox2, markedLa bel2, obj, 1); |
| 2923 } | 2938 } |
| 2924 | 2939 |
| 2925 #endif | 2940 #endif |
| 2926 | 2941 |
| 2927 } // namespace blink | 2942 } // namespace blink |
| OLD | NEW |