diff options
Diffstat (limited to 'WebCore/dom/Text.cpp')
-rw-r--r-- | WebCore/dom/Text.cpp | 36 |
1 files changed, 13 insertions, 23 deletions
diff --git a/WebCore/dom/Text.cpp b/WebCore/dom/Text.cpp index 04e499a..bbd926b 100644 --- a/WebCore/dom/Text.cpp +++ b/WebCore/dom/Text.cpp @@ -260,6 +260,19 @@ RenderObject *Text::createRenderer(RenderArena* arena, RenderStyle*) void Text::attach() { +#if ENABLE(WML) + if (document()->isWMLDocument() && !containsOnlyWhitespace()) { + String text = m_data; + ASSERT(!text.isEmpty()); + + text = substituteVariableReferences(text, document()); + + ExceptionCode code = 0; + setData(text, code); + ASSERT(!code); + } +#endif + createRendererIfNeeded(); CharacterData::attach(); } @@ -319,29 +332,6 @@ PassRefPtr<Text> Text::createWithLengthLimit(Document* doc, const String& text, return new Text(doc, nodeText); } -#if ENABLE(WML) -void Text::insertedIntoDocument() -{ - CharacterData::insertedIntoDocument(); - - if (!parentNode()->isWMLElement() || !length()) - return; - - WMLPageState* pageState = wmlPageStateForDocument(document()); - if (!pageState->hasVariables()) - return; - - String text = data(); - if (!text.impl() || text.impl()->containsOnlyWhitespace()) - return; - - text = substituteVariableReferences(text, document()); - - ExceptionCode ec; - setData(text, ec); -} -#endif - #ifndef NDEBUG void Text::formatForDebugger(char *buffer, unsigned length) const { |