| Index: Source/WebCore/dom/Document.cpp
|
| ===================================================================
|
| --- Source/WebCore/dom/Document.cpp (revision 139661)
|
| +++ Source/WebCore/dom/Document.cpp (working copy)
|
| @@ -2138,6 +2138,11 @@
|
| if (render)
|
| render->destroy();
|
|
|
| +#if ENABLE(TOUCH_EVENTS)
|
| + if (m_touchEventTargets && m_touchEventTargets->size() && parentDocument())
|
| + parentDocument()->didRemoveEventTargetNode(this);
|
| +#endif
|
| +
|
| // This is required, as our Frame might delete itself as soon as it detaches
|
| // us. However, this violates Node::detach() semantics, as it's never
|
| // possible to re-attach. Eventually Document::detach() should be renamed,
|
| @@ -5674,11 +5679,11 @@
|
| #if ENABLE(TOUCH_EVENTS)
|
| void Document::didRemoveEventTargetNode(Node* handler)
|
| {
|
| - if (m_touchEventTargets.get())
|
| + if (m_touchEventTargets) {
|
| m_touchEventTargets->removeAll(handler);
|
| - if (handler == this)
|
| - if (Document* parentDocument = this->parentDocument())
|
| - parentDocument->didRemoveEventTargetNode(this);
|
| + if ((handler == this || m_touchEventTargets->isEmpty()) && parentDocument())
|
| + parentDocument()->didRemoveEventTargetNode(this);
|
| + }
|
| }
|
| #endif
|
|
|
|
|