summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/webkit/WebCore/wml/WMLOnEventElement.cpp
diff options
context:
space:
mode:
authorAlexis Menard <alexis.menard@nokia.com>2009-12-07 13:55:23 +0100
committerAlexis Menard <alexis.menard@nokia.com>2009-12-07 13:55:23 +0100
commit211c0a1dd5c10c60c3383748b13e17e6bdeaea54 (patch)
tree268920a5f40744663dd4bf8d405d35d324926f95 /src/3rdparty/webkit/WebCore/wml/WMLOnEventElement.cpp
parentfd44f52df9275e717292f5c7e90015fc9bf14603 (diff)
parent35a740fa663d4669a45ada9c37c46546e59bbb82 (diff)
Merge branch 'master' of scm.dev.nokia.troll.no:qt/qt into widgets-ng
Diffstat (limited to 'src/3rdparty/webkit/WebCore/wml/WMLOnEventElement.cpp')
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLOnEventElement.cpp25
1 files changed, 18 insertions, 7 deletions
diff --git a/src/3rdparty/webkit/WebCore/wml/WMLOnEventElement.cpp b/src/3rdparty/webkit/WebCore/wml/WMLOnEventElement.cpp
index a8d35a000..6fc4e8b65 100644
--- a/src/3rdparty/webkit/WebCore/wml/WMLOnEventElement.cpp
+++ b/src/3rdparty/webkit/WebCore/wml/WMLOnEventElement.cpp
@@ -60,19 +60,21 @@ void WMLOnEventElement::parseMappedAttribute(MappedAttribute* attr)
WMLElement::parseMappedAttribute(attr);
}
+static inline WMLEventHandlingElement* eventHandlingParent(Node* parent)
+{
+ if (!parent || !parent->isWMLElement())
+ return 0;
+
+ return toWMLEventHandlingElement(static_cast<WMLElement*>(parent));
+}
+
void WMLOnEventElement::registerTask(WMLTaskElement* task)
{
if (m_type == WMLIntrinsicEventUnknown)
return;
// Register intrinsic event to the event handler of the owner of onevent element
- Node* parent = parentNode();
- ASSERT(parent);
-
- if (!parent || !parent->isWMLElement())
- return;
-
- WMLEventHandlingElement* eventHandlingElement = toWMLEventHandlingElement(static_cast<WMLElement*>(parent));
+ WMLEventHandlingElement* eventHandlingElement = eventHandlingParent(parentNode());
if (!eventHandlingElement)
return;
@@ -83,6 +85,15 @@ void WMLOnEventElement::registerTask(WMLTaskElement* task)
reportWMLError(document(), WMLErrorConflictingEventBinding);
}
+void WMLOnEventElement::deregisterTask(WMLTaskElement*)
+{
+ WMLEventHandlingElement* eventHandlingElement = eventHandlingParent(parentNode());
+ if (!eventHandlingElement)
+ return;
+
+ eventHandlingElement->eventHandler()->deregisterIntrinsicEvent(m_type);
+}
+
}
#endif