| 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);
|
| }
|
|
|
|
|