Chromium Code Reviews| Index: Source/core/page/EventHandler.cpp |
| diff --git a/Source/core/page/EventHandler.cpp b/Source/core/page/EventHandler.cpp |
| index 794d82088023a83f39973cf44195c7d0c2d93ede..509f70099c2a823f43174985d06ccfa1428c9fef 100644 |
| --- a/Source/core/page/EventHandler.cpp |
| +++ b/Source/core/page/EventHandler.cpp |
| @@ -695,8 +695,8 @@ bool EventHandler::handleMouseDraggedEvent(const MouseEventWithHitTestResults& e |
| if (m_selectionInitiationState != ExtendedSelection) { |
| HitTestRequest request(HitTestRequest::ReadOnly | HitTestRequest::Active); |
| - HitTestResult result(m_mouseDownPos); |
| - m_frame->document()->layoutView()->hitTest(request, result); |
| + HitTestResult result(request, m_mouseDownPos); |
| + m_frame->document()->layoutView()->hitTest(result); |
| updateSelectionForMouseDrag(result); |
| } |
| @@ -714,8 +714,8 @@ void EventHandler::updateSelectionForMouseDrag() |
| return; |
| HitTestRequest request(HitTestRequest::ReadOnly | HitTestRequest::Active | HitTestRequest::Move); |
| - HitTestResult result(view->rootFrameToContents(m_lastKnownMousePosition)); |
| - renderer->hitTest(request, result); |
| + HitTestResult result(request, view->rootFrameToContents(m_lastKnownMousePosition)); |
| + renderer->hitTest(result); |
| updateSelectionForMouseDrag(result); |
| } |
| @@ -879,7 +879,9 @@ HitTestResult EventHandler::hitTestResultAtPoint(const LayoutPoint& point, HitTe |
| } |
| } |
| - HitTestResult result(point, padding.height(), padding.width(), padding.height(), padding.width()); |
| + // hitTestResultAtPoint is specifically used to hitTest into all frames, thus it always allows child frame content. |
| + HitTestRequest request(hitType | HitTestRequest::AllowChildFrameContent); |
| + HitTestResult result(request, point, padding.height(), padding.width(), padding.height(), padding.width()); |
| // LayoutView::hitTest causes a layout, and we don't want to hit that until the first |
| // layout because until then, there is nothing shown on the screen - the user can't |
| @@ -890,9 +892,7 @@ HitTestResult EventHandler::hitTestResultAtPoint(const LayoutPoint& point, HitTe |
| if (!m_frame->contentRenderer() || !m_frame->view() || !m_frame->view()->didFirstLayout()) |
| return result; |
| - // hitTestResultAtPoint is specifically used to hitTest into all frames, thus it always allows child frame content. |
| - HitTestRequest request(hitType | HitTestRequest::AllowChildFrameContent); |
| - m_frame->contentRenderer()->hitTest(request, result); |
| + m_frame->contentRenderer()->hitTest(result); |
| if (!request.readOnly()) |
| m_frame->document()->updateHoverActiveState(request, result.innerElement()); |
| @@ -1028,8 +1028,8 @@ void EventHandler::updateCursor() |
| m_frame->document()->updateLayout(); |
| HitTestRequest request(HitTestRequest::ReadOnly); |
| - HitTestResult result(view->rootFrameToContents(m_lastKnownMousePosition)); |
| - layoutView->hitTest(request, result); |
| + HitTestResult result(request, view->rootFrameToContents(m_lastKnownMousePosition)); |
| + layoutView->hitTest(result); |
| OptionalCursor optionalCursor = selectCursor(result); |
| if (optionalCursor.isCursorChange()) { |
| @@ -1365,7 +1365,8 @@ bool EventHandler::handleMouseMoveEvent(const PlatformMouseEvent& event) |
| RefPtrWillBeRawPtr<FrameView> protector(m_frame->view()); |
| MaximumDurationTracker maxDurationTracker(&m_maxMouseMovedDuration); |
| - HitTestResult hoveredNode = HitTestResult(LayoutPoint()); |
| + HitTestRequest request(HitTestRequest::ReadOnly | HitTestRequest::Active); |
| + HitTestResult hoveredNode = HitTestResult(request, LayoutPoint()); |
|
Rick Byers
2015/03/31 00:51:00
can't we just use the default ctor here instead of
ramya.v
2015/03/31 09:41:36
Done.
|
| bool result = handleMouseMoveOrLeaveEvent(event, &hoveredNode); |
| Page* page = m_frame->page(); |
| @@ -1441,7 +1442,7 @@ bool EventHandler::handleMouseMoveOrLeaveEvent(const PlatformMouseEvent& mouseEv |
| if (m_touchPressed) |
| hitType |= HitTestRequest::Active | HitTestRequest::ReadOnly; |
| HitTestRequest request(hitType); |
| - MouseEventWithHitTestResults mev = MouseEventWithHitTestResults(mouseEvent, HitTestResult(LayoutPoint())); |
| + MouseEventWithHitTestResults mev = MouseEventWithHitTestResults(mouseEvent, HitTestResult(request, LayoutPoint())); |
| // We don't want to do a hit-test in forceLeave scenarios because there might actually be some other frame above this one at the specified co-ordinate. |
| // So we must force the hit-test to fail, while still clearing hover/active state. |
| @@ -2011,8 +2012,8 @@ bool EventHandler::handleWheelEvent(const PlatformWheelEvent& event) |
| LayoutPoint vPoint = view->rootFrameToContents(event.position()); |
| HitTestRequest request(HitTestRequest::ReadOnly); |
| - HitTestResult result(vPoint); |
| - doc->layoutView()->hitTest(request, result); |
| + HitTestResult result(request, vPoint); |
| + doc->layoutView()->hitTest(result); |
| Node* node = result.innerNode(); |
| // Wheel events should not dispatch to text nodes. |
| @@ -2214,8 +2215,8 @@ bool EventHandler::handleGestureScrollEvent(const PlatformGestureEvent& gestureE |
| FrameView* view = m_frame->view(); |
| LayoutPoint viewPoint = view->rootFrameToContents(gestureEvent.position()); |
| HitTestRequest request(HitTestRequest::ReadOnly); |
| - HitTestResult result(viewPoint); |
| - document->layoutView()->hitTest(request, result); |
| + HitTestResult result(request, viewPoint); |
| + document->layoutView()->hitTest(result); |
| eventTarget = result.innerNode(); |
| @@ -2890,9 +2891,10 @@ bool EventHandler::sendContextMenuEventForKey() |
| targetNode = doc; |
| // Use the focused node as the target for hover and active. |
| - HitTestResult result(locationInRootFrame); |
| + HitTestRequest request(HitTestRequest::Active); |
| + HitTestResult result(request, locationInRootFrame); |
| result.setInnerNode(targetNode); |
| - doc->updateHoverActiveState(HitTestRequest::Active, result.innerElement()); |
| + doc->updateHoverActiveState(request, result.innerElement()); |
| // The contextmenu event is a mouse event even when invoked using the keyboard. |
| // This is required for web compatibility. |
| @@ -3038,8 +3040,8 @@ void EventHandler::hoverTimerFired(Timer<EventHandler>*) |
| if (LayoutView* renderer = m_frame->contentRenderer()) { |
| if (FrameView* view = m_frame->view()) { |
| HitTestRequest request(HitTestRequest::Move); |
| - HitTestResult result(view->rootFrameToContents(m_lastKnownMousePosition)); |
| - renderer->hitTest(request, result); |
| + HitTestResult result(request, view->rootFrameToContents(m_lastKnownMousePosition)); |
| + renderer->hitTest(result); |
| m_frame->document()->updateHoverActiveState(request, result.innerElement()); |
| } |
| } |
| @@ -3297,8 +3299,8 @@ bool EventHandler::handleDrag(const MouseEventWithHitTestResults& event, DragIni |
| if (m_mouseDownMayStartDrag) { |
| HitTestRequest request(HitTestRequest::ReadOnly); |
| - HitTestResult result(m_mouseDownPos); |
| - m_frame->contentRenderer()->hitTest(request, result); |
| + HitTestResult result(request, m_mouseDownPos); |
| + m_frame->contentRenderer()->hitTest(result); |
| Node* node = result.innerNode(); |
| if (node) { |
| DragController::SelectionDragPolicy selectionDragPolicy = event.event().timestamp() - m_mouseDownTimestamp < TextDragDelay |
| @@ -3578,7 +3580,7 @@ static const AtomicString& eventNameForTouchPointState(PlatformTouchPoint::State |
| HitTestResult EventHandler::hitTestResultInFrame(LocalFrame* frame, const LayoutPoint& point, HitTestRequest::HitTestRequestType hitType) |
| { |
| - HitTestResult result(point); |
| + HitTestResult result(HitTestRequest(hitType), point); |
| if (!frame || !frame->contentRenderer()) |
| return result; |
| @@ -3587,7 +3589,7 @@ HitTestResult EventHandler::hitTestResultInFrame(LocalFrame* frame, const Layout |
| if (!rect.contains(roundedIntPoint(point))) |
| return result; |
| } |
| - frame->contentRenderer()->hitTest(HitTestRequest(hitType), result); |
| + frame->contentRenderer()->hitTest(result); |
| return result; |
| } |