Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserv ed. | 2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserv ed. |
| 3 * Copyright (C) 2006 Alexey Proskuryakov (ap@webkit.org) | 3 * Copyright (C) 2006 Alexey Proskuryakov (ap@webkit.org) |
| 4 * Copyright (C) 2012 Digia Plc. and/or its subsidiary(-ies) | 4 * Copyright (C) 2012 Digia Plc. and/or its subsidiary(-ies) |
| 5 * | 5 * |
| 6 * Redistribution and use in source and binary forms, with or without | 6 * Redistribution and use in source and binary forms, with or without |
| 7 * modification, are permitted provided that the following conditions | 7 * modification, are permitted provided that the following conditions |
| 8 * are met: | 8 * are met: |
| 9 * 1. Redistributions of source code must retain the above copyright | 9 * 1. Redistributions of source code must retain the above copyright |
| 10 * notice, this list of conditions and the following disclaimer. | 10 * notice, this list of conditions and the following disclaimer. |
| (...skipping 418 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 429 | 429 |
| 430 WebInputEventResult EventHandler::handleMouseReleaseEvent(const MouseEventWithHi tTestResults& event) | 430 WebInputEventResult EventHandler::handleMouseReleaseEvent(const MouseEventWithHi tTestResults& event) |
| 431 { | 431 { |
| 432 AutoscrollController* controller = m_scrollManager.autoscrollController(); | 432 AutoscrollController* controller = m_scrollManager.autoscrollController(); |
| 433 if (controller && controller->autoscrollInProgress()) | 433 if (controller && controller->autoscrollInProgress()) |
| 434 m_scrollManager.stopAutoscroll(); | 434 m_scrollManager.stopAutoscroll(); |
| 435 | 435 |
| 436 return selectionController().handleMouseReleaseEvent(event, m_dragStartPos) ? WebInputEventResult::HandledSystem : WebInputEventResult::NotHandled; | 436 return selectionController().handleMouseReleaseEvent(event, m_dragStartPos) ? WebInputEventResult::HandledSystem : WebInputEventResult::NotHandled; |
| 437 } | 437 } |
| 438 | 438 |
| 439 #if OS(WIN) | |
| 440 | |
| 441 void EventHandler::startPanScrolling(LayoutObject* layoutObject) | 439 void EventHandler::startPanScrolling(LayoutObject* layoutObject) |
| 442 { | 440 { |
| 443 if (!layoutObject->isBox()) | 441 if (!layoutObject->isBox()) |
| 444 return; | 442 return; |
| 445 AutoscrollController* controller = m_scrollManager.autoscrollController(); | 443 AutoscrollController* controller = m_scrollManager.autoscrollController(); |
| 446 if (!controller) | 444 if (!controller) |
| 447 return; | 445 return; |
| 448 controller->startPanScrolling(toLayoutBox(layoutObject), lastKnownMousePosit ion()); | 446 controller->startPanScrolling(toLayoutBox(layoutObject), lastKnownMousePosit ion()); |
| 449 invalidateClick(); | 447 invalidateClick(); |
| 450 } | 448 } |
| 451 | 449 |
| 452 #endif // OS(WIN) | |
| 453 | |
| 454 HitTestResult EventHandler::hitTestResultAtPoint(const LayoutPoint& point, HitTe stRequest::HitTestRequestType hitType, const LayoutSize& padding) | 450 HitTestResult EventHandler::hitTestResultAtPoint(const LayoutPoint& point, HitTe stRequest::HitTestRequestType hitType, const LayoutSize& padding) |
| 455 { | 451 { |
| 456 TRACE_EVENT0("blink", "EventHandler::hitTestResultAtPoint"); | 452 TRACE_EVENT0("blink", "EventHandler::hitTestResultAtPoint"); |
| 457 | 453 |
| 458 ASSERT((hitType & HitTestRequest::ListBased) || padding.isEmpty()); | 454 ASSERT((hitType & HitTestRequest::ListBased) || padding.isEmpty()); |
| 459 | 455 |
| 460 // We always send hitTestResultAtPoint to the main frame if we have one, | 456 // We always send hitTestResultAtPoint to the main frame if we have one, |
| 461 // otherwise we might hit areas that are obscured by higher frames. | 457 // otherwise we might hit areas that are obscured by higher frames. |
| 462 if (m_frame->page()) { | 458 if (m_frame->page()) { |
| 463 LocalFrame* mainFrame = m_frame->localFrameRoot(); | 459 LocalFrame* mainFrame = m_frame->localFrameRoot(); |
| (...skipping 360 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 824 // has been handled. See crbug.com/269917 | 820 // has been handled. See crbug.com/269917 |
| 825 m_capturesDragging = subframe->eventHandler().capturesDragging(); | 821 m_capturesDragging = subframe->eventHandler().capturesDragging(); |
| 826 if (m_mousePressed && m_capturesDragging) { | 822 if (m_mousePressed && m_capturesDragging) { |
| 827 m_capturingMouseEventsNode = mev.innerNode(); | 823 m_capturingMouseEventsNode = mev.innerNode(); |
| 828 m_eventHandlerWillResetCapturingMouseEventsNode = true; | 824 m_eventHandlerWillResetCapturingMouseEventsNode = true; |
| 829 } | 825 } |
| 830 invalidateClick(); | 826 invalidateClick(); |
| 831 return result; | 827 return result; |
| 832 } | 828 } |
| 833 | 829 |
| 834 #if OS(WIN) | 830 if (RuntimeEnabledFeatures::panScrollingEnabled()) { |
| 835 // We store whether pan scrolling is in progress before calling stopAutoscro ll() | 831 // We store whether pan scrolling is in progress before calling stopAuto scroll() |
| 836 // because it will set m_autoscrollType to NoAutoscroll on return. | 832 // because it will set m_autoscrollType to NoAutoscroll on return. |
| 837 bool isPanScrollInProgress = m_scrollManager.panScrollInProgress(); | 833 bool isPanScrollInProgress = m_scrollManager.panScrollInProgress(); |
| 838 m_scrollManager.stopAutoscroll(); | 834 m_scrollManager.stopAutoscroll(); |
| 839 if (isPanScrollInProgress) { | 835 if (isPanScrollInProgress) { |
| 840 // We invalidate the click when exiting pan scrolling so that we don't i nadvertently navigate | 836 // We invalidate the click when exiting pan scrolling so that we don 't inadvertently navigate |
| 841 // away from the current page (e.g. the click was on a hyperlink). See < rdar://problem/6095023>. | 837 // away from the current page (e.g. the click was on a hyperlink). S ee <rdar://problem/6095023>. |
| 842 invalidateClick(); | 838 invalidateClick(); |
| 843 return WebInputEventResult::HandledSuppressed; | 839 updatePointerTargetAndDispatchEvents(EventTypeNames::mousedown, mev. innerNode(), m_clickCount, mev.event()); |
|
sunyunjia
2016/09/01 01:50:31
I'm not sure the side effects of adding this line
Navid Zolghadr
2016/09/02 17:36:57
When pan is enabled and that pan circle is shown,
| |
| 840 return WebInputEventResult::HandledSuppressed; | |
| 841 } | |
| 844 } | 842 } |
| 845 #endif | |
| 846 | 843 |
| 847 m_clickCount = mouseEvent.clickCount(); | 844 m_clickCount = mouseEvent.clickCount(); |
| 848 m_clickNode = mev.innerNode()->isTextNode() ? FlatTreeTraversal::parent(*me v.innerNode()) : mev.innerNode(); | 845 m_clickNode = mev.innerNode()->isTextNode() ? FlatTreeTraversal::parent(*me v.innerNode()) : mev.innerNode(); |
| 849 | 846 |
| 850 if (!mouseEvent.fromTouch()) | 847 if (!mouseEvent.fromTouch()) |
| 851 m_frame->selection().setCaretBlinkingSuspended(true); | 848 m_frame->selection().setCaretBlinkingSuspended(true); |
| 852 | 849 |
| 853 WebInputEventResult eventResult = updatePointerTargetAndDispatchEvents(Event TypeNames::mousedown, mev.innerNode(), m_clickCount, mev.event()); | 850 WebInputEventResult eventResult = updatePointerTargetAndDispatchEvents(Event TypeNames::mousedown, mev.innerNode(), m_clickCount, mev.event()); |
| 854 | 851 |
| 855 if (eventResult == WebInputEventResult::NotHandled && m_frame->view()) { | 852 if (eventResult == WebInputEventResult::NotHandled && m_frame->view()) { |
| (...skipping 250 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1106 if (!mouseEvent.fromTouch()) | 1103 if (!mouseEvent.fromTouch()) |
| 1107 m_frame->selection().setCaretBlinkingSuspended(false); | 1104 m_frame->selection().setCaretBlinkingSuspended(false); |
| 1108 | 1105 |
| 1109 std::unique_ptr<UserGestureIndicator> gestureIndicator; | 1106 std::unique_ptr<UserGestureIndicator> gestureIndicator; |
| 1110 | 1107 |
| 1111 if (m_frame->localFrameRoot()->eventHandler().m_lastMouseDownUserGestureToke n) | 1108 if (m_frame->localFrameRoot()->eventHandler().m_lastMouseDownUserGestureToke n) |
| 1112 gestureIndicator = wrapUnique(new UserGestureIndicator(m_frame->localFra meRoot()->eventHandler().m_lastMouseDownUserGestureToken.release())); | 1109 gestureIndicator = wrapUnique(new UserGestureIndicator(m_frame->localFra meRoot()->eventHandler().m_lastMouseDownUserGestureToken.release())); |
| 1113 else | 1110 else |
| 1114 gestureIndicator = wrapUnique(new UserGestureIndicator(DefinitelyProcess ingUserGesture)); | 1111 gestureIndicator = wrapUnique(new UserGestureIndicator(DefinitelyProcess ingUserGesture)); |
| 1115 | 1112 |
| 1116 #if OS(WIN) | 1113 if (RuntimeEnabledFeatures::panScrollingEnabled()) { |
| 1117 if (Page* page = m_frame->page()) | 1114 if (Page* page = m_frame->page()) |
| 1118 page->autoscrollController().handleMouseReleaseForPanScrolling(m_frame, mouseEvent); | 1115 page->autoscrollController().handleMouseReleaseForPanScrolling(m_fra me, mouseEvent); |
| 1119 #endif | 1116 } |
| 1120 | 1117 |
| 1121 m_mousePressed = false; | 1118 m_mousePressed = false; |
| 1122 setLastKnownMousePosition(mouseEvent); | 1119 setLastKnownMousePosition(mouseEvent); |
| 1123 | 1120 |
| 1124 if (m_svgPan) { | 1121 if (m_svgPan) { |
| 1125 m_svgPan = false; | 1122 m_svgPan = false; |
| 1126 m_frame->document()->accessSVGExtensions().updatePan(m_frame->view()->ro otFrameToContents(m_lastKnownMousePosition)); | 1123 m_frame->document()->accessSVGExtensions().updatePan(m_frame->view()->ro otFrameToContents(m_lastKnownMousePosition)); |
| 1127 return WebInputEventResult::HandledSuppressed; | 1124 return WebInputEventResult::HandledSuppressed; |
| 1128 } | 1125 } |
| 1129 | 1126 |
| (...skipping 1476 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2606 | 2603 |
| 2607 FrameHost* EventHandler::frameHost() const | 2604 FrameHost* EventHandler::frameHost() const |
| 2608 { | 2605 { |
| 2609 if (!m_frame->page()) | 2606 if (!m_frame->page()) |
| 2610 return nullptr; | 2607 return nullptr; |
| 2611 | 2608 |
| 2612 return &m_frame->page()->frameHost(); | 2609 return &m_frame->page()->frameHost(); |
| 2613 } | 2610 } |
| 2614 | 2611 |
| 2615 } // namespace blink | 2612 } // namespace blink |
| OLD | NEW |