diff options
Diffstat (limited to 'Source/WebCore/dom/EventDispatcher.cpp')
-rw-r--r-- | Source/WebCore/dom/EventDispatcher.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/Source/WebCore/dom/EventDispatcher.cpp b/Source/WebCore/dom/EventDispatcher.cpp index ca2ed30..50d4997 100644 --- a/Source/WebCore/dom/EventDispatcher.cpp +++ b/Source/WebCore/dom/EventDispatcher.cpp @@ -99,6 +99,9 @@ void EventDispatcher::dispatchScopedEvent(Node* node, PassRefPtr<Event> event) void EventDispatcher::dispatchSimulatedClick(Node* node, PassRefPtr<Event> underlyingEvent, bool sendMouseEvents, bool showPressedLook) { + if (node->disabled()) + return; + EventDispatcher dispatcher(node); if (!gNodesDispatchingSimulatedClicks) @@ -160,8 +163,8 @@ PassRefPtr<EventTarget> EventDispatcher::adjustToShadowBoundaries(PassRefPtr<Nod } if (!diverged) { - // The relatedTarget is a parent or shadowHost of the target. - if (isShadowRootOrSVGShadowRoot(m_node.get())) + // The relatedTarget is an ancestor or shadowHost of the target. + if (m_node->shadowHost() == relatedTarget.get()) lowestCommonBoundary = m_ancestors.begin(); } else if ((*firstDivergentBoundary) == m_node.get()) { // Since ancestors does not contain target itself, we must account |