| Index: Source/core/rendering/RenderQuote.cpp
|
| diff --git a/Source/core/rendering/RenderQuote.cpp b/Source/core/rendering/RenderQuote.cpp
|
| index 1048a8427c1fbbe3fff05c3c1363549ab33cc288..a9e81007ea3e2cef4eeb89f43062b04d8f3f30e7 100644
|
| --- a/Source/core/rendering/RenderQuote.cpp
|
| +++ b/Source/core/rendering/RenderQuote.cpp
|
| @@ -270,12 +270,27 @@ void RenderQuote::updateText()
|
|
|
| m_text = text;
|
|
|
| - while (RenderObject* child = lastChild())
|
| - child->destroy();
|
| + RenderTextFragment* fragment = findFragmentChild();
|
| + if (fragment) {
|
| + fragment->setStyle(style());
|
| + fragment->setContentString(m_text.impl());
|
| + } else {
|
| + fragment = new RenderTextFragment(&document(), m_text.impl());
|
| + fragment->setStyle(style());
|
| + addChild(fragment);
|
| + }
|
| +}
|
| +
|
| +RenderTextFragment* RenderQuote::findFragmentChild() const
|
| +{
|
| + // We walk from the end of the child list because, if we've had a first-letter
|
| + // renderer inserted then the remaining text will be at the end.
|
| + while (RenderObject* child = lastChild()) {
|
| + if (child->isText() && toRenderText(child)->isTextFragment())
|
| + return toRenderTextFragment(child);
|
| + }
|
|
|
| - RenderTextFragment* fragment = new RenderTextFragment(&document(), m_text.impl());
|
| - fragment->setStyle(style());
|
| - addChild(fragment);
|
| + return nullptr;
|
| }
|
|
|
| String RenderQuote::computeText() const
|
|
|