Index: Source/WebCore/page/EventHandler.cpp |
diff --git a/Source/WebCore/page/EventHandler.cpp b/Source/WebCore/page/EventHandler.cpp |
index 216a6ed138bdce0c360acc2f82e08c577ce83e99..55d898cd3735975be9de986d5fae5b206df785c1 100644 |
--- a/Source/WebCore/page/EventHandler.cpp |
+++ b/Source/WebCore/page/EventHandler.cpp |
@@ -674,7 +674,7 @@ bool EventHandler::handleMousePressEvent(const MouseEventWithHitTestResults& eve |
swallowEvent = handleMousePressEventTripleClick(event); |
else |
swallowEvent = handleMousePressEventSingleClick(event); |
- |
+ |
m_mouseDownMayStartAutoscroll = m_mouseDownMayStartSelect |
|| (m_mousePressNode && m_mousePressNode->renderBox() && m_mousePressNode->renderBox()->canBeProgramaticallyScrolled()); |
@@ -693,24 +693,8 @@ bool EventHandler::handleMouseDraggedEvent(const MouseEventWithHitTestResults& e |
if (event.event().button() != LeftButton || !targetNode) |
return false; |
- RenderObject* renderer = targetNode->renderer(); |
- if (!renderer) { |
- Node* parent = EventPathWalker::parent(targetNode); |
- if (!parent) |
- return false; |
- |
- renderer = parent->renderer(); |
- if (!renderer || !renderer->isListBox()) |
- return false; |
- } |
- |
m_mouseDownMayStartDrag = false; |
- if (m_mouseDownMayStartAutoscroll && !panScrollInProgress()) { |
- m_autoscrollController->startAutoscrollForSelection(renderer); |
- m_mouseDownMayStartAutoscroll = false; |
- } |
- |
if (m_selectionInitiationState != ExtendedSelection) { |
HitTestRequest request(HitTestRequest::ReadOnly | HitTestRequest::Active | HitTestRequest::DisallowShadowContent); |
HitTestResult result(m_mouseDownPos); |
@@ -1665,6 +1649,22 @@ bool EventHandler::handleMouseMoveEvent(const PlatformMouseEvent& mouseEvent, Hi |
return true; |
swallowEvent = !dispatchMouseEvent(eventNames().mousemoveEvent, mev.targetNode(), false, 0, mouseEvent, true); |
+ |
+ RenderObject* renderer = targetNode->renderer(); |
+ if (!renderer) { |
+ Node* parent = EventPathWalker::parent(targetNode); |
+ if (!parent) |
+ return false; |
+ |
+ renderer = parent->renderer(); |
+ if (!renderer || !renderer->isListBox()) |
+ return false; |
+ } |
+ |
+ if (m_mouseDownMayStartAutoscroll && !panScrollInProgress()) { |
+ m_autoscrollController->startAutoscrollForSelection(renderer); |
+ m_mouseDownMayStartAutoscroll = false; |
+ } |
if (!swallowEvent) |
swallowEvent = handleMouseDraggedEvent(mev); |
@@ -1996,7 +1996,7 @@ MouseEventWithHitTestResults EventHandler::prepareMouseEvent(const HitTestReques |
{ |
ASSERT(m_frame); |
ASSERT(m_frame->document()); |
- |
+ |
return m_frame->document()->prepareMouseEvent(request, documentPointForWindowPoint(m_frame, mev.position()), mev); |
} |