| 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) 2005 Allan Sandfeld Jensen (kde@carewolf.com) | 4 * (C) 2005 Allan Sandfeld Jensen (kde@carewolf.com) |
| 5 * (C) 2005, 2006 Samuel Weinig (sam.weinig@gmail.com) | 5 * (C) 2005, 2006 Samuel Weinig (sam.weinig@gmail.com) |
| 6 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserv
ed. | 6 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserv
ed. |
| 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 3976 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3987 while (beforeChild->parent() != this) { | 3987 while (beforeChild->parent() != this) { |
| 3988 RenderBox* boxToSplit = toRenderBox(beforeChild->parent()); | 3988 RenderBox* boxToSplit = toRenderBox(beforeChild->parent()); |
| 3989 if (boxToSplit->firstChild() != beforeChild && boxToSplit->isAnonymous()
) { | 3989 if (boxToSplit->firstChild() != beforeChild && boxToSplit->isAnonymous()
) { |
| 3990 didSplitParentAnonymousBoxes = true; | 3990 didSplitParentAnonymousBoxes = true; |
| 3991 | 3991 |
| 3992 // We have to split the parent box into two boxes and move children | 3992 // We have to split the parent box into two boxes and move children |
| 3993 // from |beforeChild| to end into the new post box. | 3993 // from |beforeChild| to end into the new post box. |
| 3994 RenderBox* postBox = boxToSplit->createAnonymousBoxWithSameTypeAs(th
is); | 3994 RenderBox* postBox = boxToSplit->createAnonymousBoxWithSameTypeAs(th
is); |
| 3995 postBox->setChildrenInline(boxToSplit->childrenInline()); | 3995 postBox->setChildrenInline(boxToSplit->childrenInline()); |
| 3996 RenderBox* parentBox = toRenderBox(boxToSplit->parent()); | 3996 RenderBox* parentBox = toRenderBox(boxToSplit->parent()); |
| 3997 // We need to invalidate the |parentBox| before inserting the new no
de |
| 3998 // so that the table repainting logic knows the structure is dirty. |
| 3999 // See for example RenderTableCell:clippedOverflowRectForRepaint. |
| 4000 markBoxForRelayoutAfterSplit(parentBox); |
| 3997 parentBox->virtualChildren()->insertChildNode(parentBox, postBox, bo
xToSplit->nextSibling()); | 4001 parentBox->virtualChildren()->insertChildNode(parentBox, postBox, bo
xToSplit->nextSibling()); |
| 3998 boxToSplit->moveChildrenTo(postBox, beforeChild, 0, true); | 4002 boxToSplit->moveChildrenTo(postBox, beforeChild, 0, true); |
| 3999 | 4003 |
| 4000 markBoxForRelayoutAfterSplit(boxToSplit); | 4004 markBoxForRelayoutAfterSplit(boxToSplit); |
| 4001 markBoxForRelayoutAfterSplit(postBox); | 4005 markBoxForRelayoutAfterSplit(postBox); |
| 4002 | 4006 |
| 4003 beforeChild = postBox; | 4007 beforeChild = postBox; |
| 4004 } else | 4008 } else |
| 4005 beforeChild = boxToSplit; | 4009 beforeChild = boxToSplit; |
| 4006 } | 4010 } |
| 4007 | 4011 |
| 4008 if (didSplitParentAnonymousBoxes) | 4012 if (didSplitParentAnonymousBoxes) |
| 4009 markBoxForRelayoutAfterSplit(this); | 4013 markBoxForRelayoutAfterSplit(this); |
| 4010 | 4014 |
| 4011 ASSERT(beforeChild->parent() == this); | 4015 ASSERT(beforeChild->parent() == this); |
| 4012 return beforeChild; | 4016 return beforeChild; |
| 4013 } | 4017 } |
| 4014 | 4018 |
| 4015 } // namespace WebCore | 4019 } // namespace WebCore |
| OLD | NEW |