Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / Source / core / rendering / RenderQuote.cpp
index 1048a84..a9e8100 100644 (file)
@@ -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