summaryrefslogtreecommitdiffstats
path: root/WebCore/wml/WMLGoElement.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/wml/WMLGoElement.cpp')
-rw-r--r--WebCore/wml/WMLGoElement.cpp17
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();
}