with a detail of 2 or higher comes in. This prevents the selection.
* page/inspector/inspector.css: Mark the breadcrumb as user-select: none.
+2007-11-12 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by John S.
+
+ <rdar://problem/5537289> REGRESSION: Dragging a link or an image from an IFrame causes the page to not respond to clicks afterwards (15460)
+
+ EventHandler needs to reset these fields when a drag terminates, otherwise
+ EventHandler is left in an inconsistent state when a drag is initiated on a
+ page with multiple frames.
+
+ * page/EventHandler.cpp:
+ (WebCore::EventHandler::cancelDragAndDrop):
+ (WebCore::EventHandler::performDragAndDrop):
+ (WebCore::EventHandler::clearDragState):
+ * page/EventHandler.h:
+
2007-11-12 Oliver Hunt <oliver@apple.com>
Reviewed by Darin and Antti.
bool swallowEvent = false;
Node* targetNode = m_capturingMouseEventsNode ? m_capturingMouseEventsNode.get() : mev.targetNode();
RefPtr<Frame> newSubframe = subframeForTargetNode(targetNode);
-
+
// We want mouseouts to happen first, from the inside out. First send a move event to the last subframe so that it will fire mouseouts.
if (m_lastMouseMoveEventSubframe && m_lastMouseMoveEventSubframe->tree()->isDescendantOf(m_frame) && m_lastMouseMoveEventSubframe != newSubframe)
passMouseMoveEventToSubframe(mev, m_lastMouseMoveEventSubframe.get());
else
dispatchDragEvent(dragleaveEvent, m_dragTarget.get(), event, clipboard);
}
- m_dragTarget = 0;
+ clearDragState();
}
bool EventHandler::performDragAndDrop(const PlatformMouseEvent& event, Clipboard* clipboard)
else
accept = dispatchDragEvent(dropEvent, m_dragTarget.get(), event, clipboard);
}
- m_dragTarget = 0;
+ clearDragState();
return accept;
}
+void EventHandler::clearDragState()
+{
+ m_dragTarget = 0;
+ m_capturingMouseEventsNode = 0;
+#if PLATFORM(MAC)
+ m_sendingEventToSubview = false;
+#endif
+}
+
Node* EventHandler::nodeUnderMouse() const
{
return m_nodeUnderMouse.get();
bool handleDrag(const MouseEventWithHitTestResults&);
bool handleMouseUp(const MouseEventWithHitTestResults&);
+ void clearDragState();
bool dispatchDragSrcEvent(const AtomicString& eventType, const PlatformMouseEvent&);