diff options
Diffstat (limited to 'WebCore/wml/WMLGoElement.cpp')
-rw-r--r-- | WebCore/wml/WMLGoElement.cpp | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/WebCore/wml/WMLGoElement.cpp b/WebCore/wml/WMLGoElement.cpp index 7293e66..635302f 100644 --- a/WebCore/wml/WMLGoElement.cpp +++ b/WebCore/wml/WMLGoElement.cpp @@ -1,5 +1,5 @@ /** - * Copyright (C) 2008 Torch Mobile Inc. All rights reserved. (http://www.torchmobile.com/) + * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmobile.com/) * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -50,8 +50,16 @@ WMLGoElement::WMLGoElement(const QualifiedName& tagName, Document* doc) void WMLGoElement::registerPostfieldElement(WMLPostfieldElement* postfield) { + ASSERT(m_postfieldElements.find(postfield) == WTF::notFound); m_postfieldElements.append(postfield); } + +void WMLGoElement::deregisterPostfieldElement(WMLPostfieldElement* postfield) +{ + size_t position = m_postfieldElements.find(postfield); + ASSERT(position != WTF::notFound); + m_postfieldElements.remove(position); +} void WMLGoElement::parseMappedAttribute(MappedAttribute* attr) { @@ -101,11 +109,8 @@ void WMLGoElement::executeTask(Event*) // FIXME: 'newcontext' handling not implemented for external cards bool inSameDeck = doc->url().path() == url.path(); - if (inSameDeck && url.hasRef()) { - // Force frame loader to load the URL with fragment identifier - loader->setForceReloadWmlDeck(true); - - if (WMLCardElement* card = WMLCardElement::findNamedCardInDocument(doc, url.ref())) { + if (inSameDeck && url.hasFragmentIdentifier()) { + if (WMLCardElement* card = WMLCardElement::findNamedCardInDocument(doc, url.fragmentIdentifier())) { if (card->isNewContext()) pageState->reset(); } |