diff options
author | Alexis Menard <alexis.menard@nokia.com> | 2009-12-07 13:55:23 +0100 |
---|---|---|
committer | Alexis Menard <alexis.menard@nokia.com> | 2009-12-07 13:55:23 +0100 |
commit | 211c0a1dd5c10c60c3383748b13e17e6bdeaea54 (patch) | |
tree | 268920a5f40744663dd4bf8d405d35d324926f95 /src/3rdparty/webkit/WebCore/wml/WMLOnEventElement.cpp | |
parent | fd44f52df9275e717292f5c7e90015fc9bf14603 (diff) | |
parent | 35a740fa663d4669a45ada9c37c46546e59bbb82 (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.cpp | 25 |
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 |