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 549 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
560 cloneBlock->setContinuation(oldCont); | 560 cloneBlock->setContinuation(oldCont); |
561 | 561 |
562 if (!beforeChild && isAfterContent(lastChild())) | 562 if (!beforeChild && isAfterContent(lastChild())) |
563 beforeChild = lastChild(); | 563 beforeChild = lastChild(); |
564 | 564 |
565 // If we are moving inline children from |this| to cloneBlock, then we need | 565 // If we are moving inline children from |this| to cloneBlock, then we need |
566 // to clear our line box tree. | 566 // to clear our line box tree. |
567 if (beforeChild && childrenInline()) | 567 if (beforeChild && childrenInline()) |
568 deleteLineBoxTree(); | 568 deleteLineBoxTree(); |
569 | 569 |
570 // We have to remove the descendant child from our positioned objects list | |
571 // before we do the split and move some of the children to cloneBlock. Since | |
572 // we are doing layout anyway, it is easier to blow away the entire list, th
an | |
573 // traversing down the subtree looking for positioned childs and then remove
them | |
574 // from our positioned objects list. | |
575 if (beforeChild) | |
576 removePositionedObjects(0); | |
577 | |
578 // Now take all of the children from beforeChild to the end and remove | 570 // Now take all of the children from beforeChild to the end and remove |
579 // them from |this| and place them in the clone. | 571 // them from |this| and place them in the clone. |
580 moveChildrenTo(cloneBlock, beforeChild, 0, true); | 572 moveChildrenTo(cloneBlock, beforeChild, 0, true); |
581 | 573 |
582 // Hook |clone| up as the continuation of the middle block. | 574 // Hook |clone| up as the continuation of the middle block. |
583 if (!cloneBlock->isAnonymousBlock()) | 575 if (!cloneBlock->isAnonymousBlock()) |
584 middleBlock->setContinuation(cloneBlock); | 576 middleBlock->setContinuation(cloneBlock); |
585 | 577 |
586 // We have been reparented and are now under the fromBlock. We need | 578 // We have been reparented and are now under the fromBlock. We need |
587 // to walk up our block parent chain until we hit the containing anonymous c
olumns block. | 579 // to walk up our block parent chain until we hit the containing anonymous c
olumns block. |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
621 // Someone may have indirectly caused a <q> to split. When this happens
, the :after content | 613 // Someone may have indirectly caused a <q> to split. When this happens
, the :after content |
622 // has to move into the inline continuation. Call updateBeforeAfterCont
ent to ensure that the inline's :after | 614 // has to move into the inline continuation. Call updateBeforeAfterCont
ent to ensure that the inline's :after |
623 // content gets properly destroyed. | 615 // content gets properly destroyed. |
624 bool isLastChild = (currChildNextSibling == blockCurr->lastChild()); | 616 bool isLastChild = (currChildNextSibling == blockCurr->lastChild()); |
625 if (documentUsesBeforeAfterRules) | 617 if (documentUsesBeforeAfterRules) |
626 blockCurr->children()->updateBeforeAfterContent(blockCurr, AFTER); | 618 blockCurr->children()->updateBeforeAfterContent(blockCurr, AFTER); |
627 if (isLastChild && currChildNextSibling != blockCurr->lastChild()) | 619 if (isLastChild && currChildNextSibling != blockCurr->lastChild()) |
628 currChildNextSibling = 0; // We destroyed the last child, so now we
need to update | 620 currChildNextSibling = 0; // We destroyed the last child, so now we
need to update |
629 // the value of currChildNextSibling. | 621 // the value of currChildNextSibling. |
630 | 622 |
631 // It is possible that positioned objects under blockCurr are going to b
e moved to cloneBlock. | |
632 // Since we are doing layout anyway, it is easier to blow away the entir
e list, than | |
633 // traversing down the subtree looking for positioned children and then
remove them | |
634 // from our positioned objects list. | |
635 blockCurr->removePositionedObjects(0); | |
636 | |
637 // Now we need to take all of the children starting from the first child | 623 // Now we need to take all of the children starting from the first child |
638 // *after* currChild and append them all to the clone. | 624 // *after* currChild and append them all to the clone. |
639 blockCurr->moveChildrenTo(cloneBlock, currChildNextSibling, 0, true); | 625 blockCurr->moveChildrenTo(cloneBlock, currChildNextSibling, 0, true); |
640 | 626 |
641 // Keep walking up the chain. | 627 // Keep walking up the chain. |
642 currChild = curr; | 628 currChild = curr; |
643 currChildNextSibling = currChild->nextSibling(); | 629 currChildNextSibling = currChild->nextSibling(); |
644 curr = toRenderBoxModelObject(curr->parent()); | 630 curr = toRenderBoxModelObject(curr->parent()); |
645 } | 631 } |
646 | 632 |
(...skipping 6767 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7414 } | 7400 } |
7415 | 7401 |
7416 String ValueToString<RenderBlock::FloatingObject*>::string(const RenderBlock::Fl
oatingObject* floatingObject) | 7402 String ValueToString<RenderBlock::FloatingObject*>::string(const RenderBlock::Fl
oatingObject* floatingObject) |
7417 { | 7403 { |
7418 return String::format("%p (%dx%d %dx%d)", floatingObject, floatingObject->pi
xelSnappedX(), floatingObject->pixelSnappedY(), floatingObject->pixelSnappedMaxX
(), floatingObject->pixelSnappedMaxY()); | 7404 return String::format("%p (%dx%d %dx%d)", floatingObject, floatingObject->pi
xelSnappedX(), floatingObject->pixelSnappedY(), floatingObject->pixelSnappedMaxX
(), floatingObject->pixelSnappedMaxY()); |
7419 } | 7405 } |
7420 | 7406 |
7421 #endif | 7407 #endif |
7422 | 7408 |
7423 } // namespace WebCore | 7409 } // namespace WebCore |
OLD | NEW |