| 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 Apple Inc. All r
ights reserved. | 5 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All r
ights 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 5551 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5562 | 5562 |
| 5563 if (!currChild) | 5563 if (!currChild) |
| 5564 return; | 5564 return; |
| 5565 | 5565 |
| 5566 // If the child already has style, then it has already been created, so we j
ust want | 5566 // If the child already has style, then it has already been created, so we j
ust want |
| 5567 // to update it. | 5567 // to update it. |
| 5568 if (currChild->parent()->style()->styleType() == FIRST_LETTER) { | 5568 if (currChild->parent()->style()->styleType() == FIRST_LETTER) { |
| 5569 RenderObject* firstLetter = currChild->parent(); | 5569 RenderObject* firstLetter = currChild->parent(); |
| 5570 RenderObject* firstLetterContainer = firstLetter->parent(); | 5570 RenderObject* firstLetterContainer = firstLetter->parent(); |
| 5571 RenderStyle* pseudoStyle = styleForFirstLetter(firstLetterBlock, firstLe
tterContainer); | 5571 RenderStyle* pseudoStyle = styleForFirstLetter(firstLetterBlock, firstLe
tterContainer); |
| 5572 ASSERT(firstLetter->isFloating() || firstLetter->isInline()); |
| 5572 | 5573 |
| 5573 if (Node::diff(firstLetter->style(), pseudoStyle) == Node::Detach) { | 5574 if (Node::diff(firstLetter->style(), pseudoStyle) == Node::Detach) { |
| 5574 // The first-letter renderer needs to be replaced. Create a new rend
erer of the right type. | 5575 // The first-letter renderer needs to be replaced. Create a new rend
erer of the right type. |
| 5575 RenderObject* newFirstLetter; | 5576 RenderObject* newFirstLetter; |
| 5576 if (pseudoStyle->display() == INLINE) | 5577 if (pseudoStyle->display() == INLINE) |
| 5577 newFirstLetter = new (renderArena()) RenderInline(document()); | 5578 newFirstLetter = new (renderArena()) RenderInline(document()); |
| 5578 else | 5579 else |
| 5579 newFirstLetter = new (renderArena()) RenderBlock(document()); | 5580 newFirstLetter = new (renderArena()) RenderBlock(document()); |
| 5580 newFirstLetter->setStyle(pseudoStyle); | 5581 newFirstLetter->setStyle(pseudoStyle); |
| 5581 | 5582 |
| (...skipping 10 matching lines...) Expand all Loading... |
| 5592 RenderObject* nextSibling = firstLetter->nextSibling(); | 5593 RenderObject* nextSibling = firstLetter->nextSibling(); |
| 5593 RenderObject* next = nextSibling; | 5594 RenderObject* next = nextSibling; |
| 5594 while (next) { | 5595 while (next) { |
| 5595 if (next->isText() && toRenderText(next)->isTextFragment()) { | 5596 if (next->isText() && toRenderText(next)->isTextFragment()) { |
| 5596 remainingText = toRenderTextFragment(next); | 5597 remainingText = toRenderTextFragment(next); |
| 5597 break; | 5598 break; |
| 5598 } | 5599 } |
| 5599 next = next->nextSibling(); | 5600 next = next->nextSibling(); |
| 5600 } | 5601 } |
| 5601 if (remainingText) { | 5602 if (remainingText) { |
| 5602 ASSERT(remainingText->node()->renderer() == remainingText); | 5603 ASSERT(remainingText->isAnonymous() || remainingText->node()->re
nderer() == remainingText); |
| 5603 // Replace the old renderer with the new one. | 5604 // Replace the old renderer with the new one. |
| 5604 remainingText->setFirstLetter(newFirstLetter); | 5605 remainingText->setFirstLetter(newFirstLetter); |
| 5605 } | 5606 } |
| 5606 firstLetter->destroy(); | 5607 firstLetter->destroy(); |
| 5607 firstLetter = newFirstLetter; | 5608 firstLetter = newFirstLetter; |
| 5608 firstLetterContainer->addChild(firstLetter, nextSibling); | 5609 firstLetterContainer->addChild(firstLetter, nextSibling); |
| 5609 } else | 5610 } else |
| 5610 firstLetter->setStyle(pseudoStyle); | 5611 firstLetter->setStyle(pseudoStyle); |
| 5611 | 5612 |
| 5612 for (RenderObject* genChild = firstLetter->firstChild(); genChild; genCh
ild = genChild->nextSibling()) { | 5613 for (RenderObject* genChild = firstLetter->firstChild(); genChild; genCh
ild = genChild->nextSibling()) { |
| (...skipping 1280 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6893 } | 6894 } |
| 6894 | 6895 |
| 6895 String ValueToString<RenderBlock::FloatingObject*>::string(const RenderBlock::Fl
oatingObject* floatingObject) | 6896 String ValueToString<RenderBlock::FloatingObject*>::string(const RenderBlock::Fl
oatingObject* floatingObject) |
| 6896 { | 6897 { |
| 6897 return String::format("%p (%dx%d %dx%d)", floatingObject, floatingObject->x(
), floatingObject->y(), floatingObject->maxX(), floatingObject->maxY()); | 6898 return String::format("%p (%dx%d %dx%d)", floatingObject, floatingObject->x(
), floatingObject->y(), floatingObject->maxX(), floatingObject->maxY()); |
| 6898 } | 6899 } |
| 6899 | 6900 |
| 6900 #endif | 6901 #endif |
| 6901 | 6902 |
| 6902 } // namespace WebCore | 6903 } // namespace WebCore |
| OLD | NEW |