| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights | 2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights |
| 3 * reserved. | 3 * reserved. |
| 4 * Copyright (C) 2006 Alexey Proskuryakov (ap@webkit.org) | 4 * Copyright (C) 2006 Alexey Proskuryakov (ap@webkit.org) |
| 5 * Copyright (C) 2012 Digia Plc. and/or its subsidiary(-ies) | 5 * Copyright (C) 2012 Digia Plc. and/or its subsidiary(-ies) |
| 6 * | 6 * |
| 7 * Redistribution and use in source and binary forms, with or without | 7 * Redistribution and use in source and binary forms, with or without |
| 8 * modification, are permitted provided that the following conditions | 8 * modification, are permitted provided that the following conditions |
| 9 * are met: | 9 * are met: |
| 10 * 1. Redistributions of source code must retain the above copyright | 10 * 1. Redistributions of source code must retain the above copyright |
| (...skipping 630 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 641 m_mouseEventManager->setClickCount(mouseEvent.clickCount()); | 641 m_mouseEventManager->setClickCount(mouseEvent.clickCount()); |
| 642 m_mouseEventManager->setClickNode( | 642 m_mouseEventManager->setClickNode( |
| 643 mev.innerNode()->isTextNode() | 643 mev.innerNode()->isTextNode() |
| 644 ? FlatTreeTraversal::parent(*mev.innerNode()) | 644 ? FlatTreeTraversal::parent(*mev.innerNode()) |
| 645 : mev.innerNode()); | 645 : mev.innerNode()); |
| 646 | 646 |
| 647 if (!mouseEvent.fromTouch()) | 647 if (!mouseEvent.fromTouch()) |
| 648 m_frame->selection().setCaretBlinkingSuspended(true); | 648 m_frame->selection().setCaretBlinkingSuspended(true); |
| 649 | 649 |
| 650 WebInputEventResult eventResult = updatePointerTargetAndDispatchEvents( | 650 WebInputEventResult eventResult = updatePointerTargetAndDispatchEvents( |
| 651 EventTypeNames::mousedown, mev.innerNode(), mev.event()); | 651 EventTypeNames::mousedown, mev.innerNode(), mev.event(), |
| 652 Vector<PlatformMouseEvent>()); |
| 652 | 653 |
| 653 if (eventResult == WebInputEventResult::NotHandled && m_frame->view()) { | 654 if (eventResult == WebInputEventResult::NotHandled && m_frame->view()) { |
| 654 FrameView* view = m_frame->view(); | 655 FrameView* view = m_frame->view(); |
| 655 PaintLayer* layer = mev.innerNode()->layoutObject() | 656 PaintLayer* layer = mev.innerNode()->layoutObject() |
| 656 ? mev.innerNode()->layoutObject()->enclosingLayer() | 657 ? mev.innerNode()->layoutObject()->enclosingLayer() |
| 657 : nullptr; | 658 : nullptr; |
| 658 IntPoint p = view->rootFrameToContents(mouseEvent.position()); | 659 IntPoint p = view->rootFrameToContents(mouseEvent.position()); |
| 659 if (layer && layer->getScrollableArea() && | 660 if (layer && layer->getScrollableArea() && |
| 660 layer->getScrollableArea()->isPointInResizeControl(p, | 661 layer->getScrollableArea()->isPointInResizeControl(p, |
| 661 ResizerForPointer)) { | 662 ResizerForPointer)) { |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 719 ASSERT(mouseEvent.type() == PlatformEvent::MousePressed); | 720 ASSERT(mouseEvent.type() == PlatformEvent::MousePressed); |
| 720 HitTestResult result = mev.hitTestResult(); | 721 HitTestResult result = mev.hitTestResult(); |
| 721 result.setToShadowHostIfInUserAgentShadowRoot(); | 722 result.setToShadowHostIfInUserAgentShadowRoot(); |
| 722 m_frame->chromeClient().onMouseDown(result.innerNode()); | 723 m_frame->chromeClient().onMouseDown(result.innerNode()); |
| 723 } | 724 } |
| 724 | 725 |
| 725 return eventResult; | 726 return eventResult; |
| 726 } | 727 } |
| 727 | 728 |
| 728 WebInputEventResult EventHandler::handleMouseMoveEvent( | 729 WebInputEventResult EventHandler::handleMouseMoveEvent( |
| 729 const PlatformMouseEvent& event) { | 730 const PlatformMouseEvent& event, |
| 731 const Vector<PlatformMouseEvent>& coalescedEvents) { |
| 730 TRACE_EVENT0("blink", "EventHandler::handleMouseMoveEvent"); | 732 TRACE_EVENT0("blink", "EventHandler::handleMouseMoveEvent"); |
| 731 | 733 |
| 732 HitTestResult hoveredNode = HitTestResult(); | 734 HitTestResult hoveredNode = HitTestResult(); |
| 733 WebInputEventResult result = handleMouseMoveOrLeaveEvent(event, &hoveredNode); | 735 WebInputEventResult result = |
| 736 handleMouseMoveOrLeaveEvent(event, coalescedEvents, &hoveredNode); |
| 734 | 737 |
| 735 Page* page = m_frame->page(); | 738 Page* page = m_frame->page(); |
| 736 if (!page) | 739 if (!page) |
| 737 return result; | 740 return result; |
| 738 | 741 |
| 739 if (PaintLayer* layer = | 742 if (PaintLayer* layer = |
| 740 EventHandlingUtil::layerForNode(hoveredNode.innerNode())) { | 743 EventHandlingUtil::layerForNode(hoveredNode.innerNode())) { |
| 741 if (ScrollableArea* layerScrollableArea = | 744 if (ScrollableArea* layerScrollableArea = |
| 742 EventHandlingUtil::associatedScrollableArea(layer)) | 745 EventHandlingUtil::associatedScrollableArea(layer)) |
| 743 layerScrollableArea->mouseMovedInContentArea(); | 746 layerScrollableArea->mouseMovedInContentArea(); |
| 744 } | 747 } |
| 745 | 748 |
| 746 if (FrameView* frameView = m_frame->view()) | 749 if (FrameView* frameView = m_frame->view()) |
| 747 frameView->mouseMovedInContentArea(); | 750 frameView->mouseMovedInContentArea(); |
| 748 | 751 |
| 749 hoveredNode.setToShadowHostIfInUserAgentShadowRoot(); | 752 hoveredNode.setToShadowHostIfInUserAgentShadowRoot(); |
| 750 page->chromeClient().mouseDidMoveOverElement(*m_frame, hoveredNode); | 753 page->chromeClient().mouseDidMoveOverElement(*m_frame, hoveredNode); |
| 751 | 754 |
| 752 return result; | 755 return result; |
| 753 } | 756 } |
| 754 | 757 |
| 755 void EventHandler::handleMouseLeaveEvent(const PlatformMouseEvent& event) { | 758 void EventHandler::handleMouseLeaveEvent(const PlatformMouseEvent& event) { |
| 756 TRACE_EVENT0("blink", "EventHandler::handleMouseLeaveEvent"); | 759 TRACE_EVENT0("blink", "EventHandler::handleMouseLeaveEvent"); |
| 757 | 760 |
| 758 handleMouseMoveOrLeaveEvent(event, 0, false, true); | 761 handleMouseMoveOrLeaveEvent(event, Vector<PlatformMouseEvent>(), 0, false, |
| 762 true); |
| 759 } | 763 } |
| 760 | 764 |
| 761 WebInputEventResult EventHandler::handleMouseMoveOrLeaveEvent( | 765 WebInputEventResult EventHandler::handleMouseMoveOrLeaveEvent( |
| 762 const PlatformMouseEvent& mouseEvent, | 766 const PlatformMouseEvent& mouseEvent, |
| 767 const Vector<PlatformMouseEvent>& coalescedEvents, |
| 763 HitTestResult* hoveredNode, | 768 HitTestResult* hoveredNode, |
| 764 bool onlyUpdateScrollbars, | 769 bool onlyUpdateScrollbars, |
| 765 bool forceLeave) { | 770 bool forceLeave) { |
| 766 ASSERT(m_frame); | 771 ASSERT(m_frame); |
| 767 ASSERT(m_frame->view()); | 772 ASSERT(m_frame->view()); |
| 768 | 773 |
| 769 m_mouseEventManager->setLastKnownMousePosition(mouseEvent); | 774 m_mouseEventManager->setLastKnownMousePosition(mouseEvent); |
| 770 | 775 |
| 771 m_hoverTimer.stop(); | 776 m_hoverTimer.stop(); |
| 772 m_cursorUpdateTimer.stop(); | 777 m_cursorUpdateTimer.stop(); |
| 773 | 778 |
| 774 m_mouseEventManager->cancelFakeMouseMoveEvent(); | 779 m_mouseEventManager->cancelFakeMouseMoveEvent(); |
| 775 m_mouseEventManager->handleSvgPanIfNeeded(false); | 780 m_mouseEventManager->handleSvgPanIfNeeded(false); |
| 776 | 781 |
| 777 if (m_frameSetBeingResized) { | 782 if (m_frameSetBeingResized) { |
| 778 return updatePointerTargetAndDispatchEvents( | 783 return updatePointerTargetAndDispatchEvents(EventTypeNames::mousemove, |
| 779 EventTypeNames::mousemove, m_frameSetBeingResized.get(), mouseEvent); | 784 m_frameSetBeingResized.get(), |
| 785 mouseEvent, coalescedEvents); |
| 780 } | 786 } |
| 781 | 787 |
| 782 // Send events right to a scrollbar if the mouse is pressed. | 788 // Send events right to a scrollbar if the mouse is pressed. |
| 783 if (m_lastScrollbarUnderMouse && m_mouseEventManager->mousePressed()) { | 789 if (m_lastScrollbarUnderMouse && m_mouseEventManager->mousePressed()) { |
| 784 m_lastScrollbarUnderMouse->mouseMoved(mouseEvent); | 790 m_lastScrollbarUnderMouse->mouseMoved(mouseEvent); |
| 785 return WebInputEventResult::HandledSystem; | 791 return WebInputEventResult::HandledSystem; |
| 786 } | 792 } |
| 787 | 793 |
| 788 // Mouse events simulated from touch should not hit-test again. | 794 // Mouse events simulated from touch should not hit-test again. |
| 789 ASSERT(!mouseEvent.fromTouch()); | 795 ASSERT(!mouseEvent.fromTouch()); |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 850 mev.event()); | 856 mev.event()); |
| 851 | 857 |
| 852 if (newSubframe) { | 858 if (newSubframe) { |
| 853 // Update over/out state before passing the event to the subframe. | 859 // Update over/out state before passing the event to the subframe. |
| 854 m_pointerEventManager->sendMouseAndPointerBoundaryEvents( | 860 m_pointerEventManager->sendMouseAndPointerBoundaryEvents( |
| 855 updateMouseEventTargetNode(mev.innerNode()), mev.event()); | 861 updateMouseEventTargetNode(mev.innerNode()), mev.event()); |
| 856 | 862 |
| 857 // Event dispatch in sendMouseAndPointerBoundaryEvents may have caused the | 863 // Event dispatch in sendMouseAndPointerBoundaryEvents may have caused the |
| 858 // subframe of the target node to be detached from its FrameView, in which | 864 // subframe of the target node to be detached from its FrameView, in which |
| 859 // case the event should not be passed. | 865 // case the event should not be passed. |
| 860 if (newSubframe->view()) | 866 if (newSubframe->view()) { |
| 861 eventResult = passMouseMoveEventToSubframe(mev, newSubframe, hoveredNode); | 867 eventResult = passMouseMoveEventToSubframe(mev, coalescedEvents, |
| 868 newSubframe, hoveredNode); |
| 869 } |
| 862 } else { | 870 } else { |
| 863 if (scrollbar && !m_mouseEventManager->mousePressed()) { | 871 if (scrollbar && !m_mouseEventManager->mousePressed()) { |
| 864 // Handle hover effects on platforms that support visual feedback on | 872 // Handle hover effects on platforms that support visual feedback on |
| 865 // scrollbar hovering. | 873 // scrollbar hovering. |
| 866 scrollbar->mouseMoved(mev.event()); | 874 scrollbar->mouseMoved(mev.event()); |
| 867 } | 875 } |
| 868 if (FrameView* view = m_frame->view()) { | 876 if (FrameView* view = m_frame->view()) { |
| 869 OptionalCursor optionalCursor = selectCursor(mev.hitTestResult()); | 877 OptionalCursor optionalCursor = selectCursor(mev.hitTestResult()); |
| 870 if (optionalCursor.isCursorChange()) { | 878 if (optionalCursor.isCursorChange()) { |
| 871 view->setCursor(optionalCursor.cursor()); | 879 view->setCursor(optionalCursor.cursor()); |
| 872 } | 880 } |
| 873 } | 881 } |
| 874 } | 882 } |
| 875 | 883 |
| 876 m_lastMouseMoveEventSubframe = newSubframe; | 884 m_lastMouseMoveEventSubframe = newSubframe; |
| 877 | 885 |
| 878 if (eventResult != WebInputEventResult::NotHandled) | 886 if (eventResult != WebInputEventResult::NotHandled) |
| 879 return eventResult; | 887 return eventResult; |
| 880 | 888 |
| 881 eventResult = updatePointerTargetAndDispatchEvents( | 889 eventResult = updatePointerTargetAndDispatchEvents( |
| 882 EventTypeNames::mousemove, mev.innerNode(), mev.event()); | 890 EventTypeNames::mousemove, mev.innerNode(), mev.event(), coalescedEvents); |
| 883 if (eventResult != WebInputEventResult::NotHandled) | 891 if (eventResult != WebInputEventResult::NotHandled) |
| 884 return eventResult; | 892 return eventResult; |
| 885 | 893 |
| 886 return m_mouseEventManager->handleMouseDraggedEvent(mev); | 894 return m_mouseEventManager->handleMouseDraggedEvent(mev); |
| 887 } | 895 } |
| 888 | 896 |
| 889 WebInputEventResult EventHandler::handleMouseReleaseEvent( | 897 WebInputEventResult EventHandler::handleMouseReleaseEvent( |
| 890 const PlatformMouseEvent& mouseEvent) { | 898 const PlatformMouseEvent& mouseEvent) { |
| 891 TRACE_EVENT0("blink", "EventHandler::handleMouseReleaseEvent"); | 899 TRACE_EVENT0("blink", "EventHandler::handleMouseReleaseEvent"); |
| 892 | 900 |
| (...skipping 21 matching lines...) Expand all Loading... |
| 914 return m_mouseEventManager->setMousePositionAndDispatchMouseEvent( | 922 return m_mouseEventManager->setMousePositionAndDispatchMouseEvent( |
| 915 updateMouseEventTargetNode(m_frameSetBeingResized.get()), | 923 updateMouseEventTargetNode(m_frameSetBeingResized.get()), |
| 916 EventTypeNames::mouseup, mouseEvent); | 924 EventTypeNames::mouseup, mouseEvent); |
| 917 } | 925 } |
| 918 | 926 |
| 919 if (m_lastScrollbarUnderMouse) { | 927 if (m_lastScrollbarUnderMouse) { |
| 920 m_mouseEventManager->invalidateClick(); | 928 m_mouseEventManager->invalidateClick(); |
| 921 m_lastScrollbarUnderMouse->mouseUp(mouseEvent); | 929 m_lastScrollbarUnderMouse->mouseUp(mouseEvent); |
| 922 return updatePointerTargetAndDispatchEvents( | 930 return updatePointerTargetAndDispatchEvents( |
| 923 EventTypeNames::mouseup, m_mouseEventManager->getNodeUnderMouse(), | 931 EventTypeNames::mouseup, m_mouseEventManager->getNodeUnderMouse(), |
| 924 mouseEvent); | 932 mouseEvent, Vector<PlatformMouseEvent>()); |
| 925 } | 933 } |
| 926 | 934 |
| 927 // Mouse events simulated from touch should not hit-test again. | 935 // Mouse events simulated from touch should not hit-test again. |
| 928 ASSERT(!mouseEvent.fromTouch()); | 936 ASSERT(!mouseEvent.fromTouch()); |
| 929 | 937 |
| 930 HitTestRequest::HitTestRequestType hitType = HitTestRequest::Release; | 938 HitTestRequest::HitTestRequestType hitType = HitTestRequest::Release; |
| 931 HitTestRequest request(hitType); | 939 HitTestRequest request(hitType); |
| 932 MouseEventWithHitTestResults mev = | 940 MouseEventWithHitTestResults mev = |
| 933 EventHandlingUtil::performMouseEventHitTest(m_frame, request, mouseEvent); | 941 EventHandlingUtil::performMouseEventHitTest(m_frame, request, mouseEvent); |
| 934 LocalFrame* subframe = | 942 LocalFrame* subframe = |
| (...skipping 17 matching lines...) Expand all Loading... |
| 952 gestureIndicator = wrapUnique(new UserGestureIndicator( | 960 gestureIndicator = wrapUnique(new UserGestureIndicator( |
| 953 m_frame->localFrameRoot() | 961 m_frame->localFrameRoot() |
| 954 ->eventHandler() | 962 ->eventHandler() |
| 955 .m_lastMouseDownUserGestureToken.release())); | 963 .m_lastMouseDownUserGestureToken.release())); |
| 956 } else { | 964 } else { |
| 957 gestureIndicator = wrapUnique(new UserGestureIndicator( | 965 gestureIndicator = wrapUnique(new UserGestureIndicator( |
| 958 DocumentUserGestureToken::create(m_frame->document()))); | 966 DocumentUserGestureToken::create(m_frame->document()))); |
| 959 } | 967 } |
| 960 | 968 |
| 961 WebInputEventResult eventResult = updatePointerTargetAndDispatchEvents( | 969 WebInputEventResult eventResult = updatePointerTargetAndDispatchEvents( |
| 962 EventTypeNames::mouseup, mev.innerNode(), mev.event()); | 970 EventTypeNames::mouseup, mev.innerNode(), mev.event(), |
| 971 Vector<PlatformMouseEvent>()); |
| 963 | 972 |
| 964 WebInputEventResult clickEventResult = | 973 WebInputEventResult clickEventResult = |
| 965 m_mouseEventManager->dispatchMouseClickIfNeeded(mev); | 974 m_mouseEventManager->dispatchMouseClickIfNeeded(mev); |
| 966 | 975 |
| 967 m_scrollManager->clearResizeScrollableArea(false); | 976 m_scrollManager->clearResizeScrollableArea(false); |
| 968 | 977 |
| 969 if (eventResult == WebInputEventResult::NotHandled) | 978 if (eventResult == WebInputEventResult::NotHandled) |
| 970 eventResult = m_mouseEventManager->handleMouseReleaseEvent(mev); | 979 eventResult = m_mouseEventManager->handleMouseReleaseEvent(mev); |
| 971 m_mouseEventManager->clearDragHeuristicState(); | 980 m_mouseEventManager->clearDragHeuristicState(); |
| 972 | 981 |
| (...skipping 270 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1243 return m_pointerEventManager->hasProcessedPointerCapture(pointerId, target); | 1252 return m_pointerEventManager->hasProcessedPointerCapture(pointerId, target); |
| 1244 } | 1253 } |
| 1245 | 1254 |
| 1246 void EventHandler::elementRemoved(EventTarget* target) { | 1255 void EventHandler::elementRemoved(EventTarget* target) { |
| 1247 m_pointerEventManager->elementRemoved(target); | 1256 m_pointerEventManager->elementRemoved(target); |
| 1248 } | 1257 } |
| 1249 | 1258 |
| 1250 WebInputEventResult EventHandler::updatePointerTargetAndDispatchEvents( | 1259 WebInputEventResult EventHandler::updatePointerTargetAndDispatchEvents( |
| 1251 const AtomicString& mouseEventType, | 1260 const AtomicString& mouseEventType, |
| 1252 Node* targetNode, | 1261 Node* targetNode, |
| 1253 const PlatformMouseEvent& mouseEvent) { | 1262 const PlatformMouseEvent& mouseEvent, |
| 1263 const Vector<PlatformMouseEvent>& coalescedEvents) { |
| 1254 ASSERT(mouseEventType == EventTypeNames::mousedown || | 1264 ASSERT(mouseEventType == EventTypeNames::mousedown || |
| 1255 mouseEventType == EventTypeNames::mousemove || | 1265 mouseEventType == EventTypeNames::mousemove || |
| 1256 mouseEventType == EventTypeNames::mouseup); | 1266 mouseEventType == EventTypeNames::mouseup); |
| 1257 | 1267 |
| 1258 const auto& eventResult = m_pointerEventManager->sendMousePointerEvent( | 1268 const auto& eventResult = m_pointerEventManager->sendMousePointerEvent( |
| 1259 updateMouseEventTargetNode(targetNode), mouseEventType, mouseEvent); | 1269 updateMouseEventTargetNode(targetNode), mouseEventType, mouseEvent, |
| 1270 coalescedEvents); |
| 1260 return eventResult; | 1271 return eventResult; |
| 1261 } | 1272 } |
| 1262 | 1273 |
| 1263 WebInputEventResult EventHandler::handleWheelEvent( | 1274 WebInputEventResult EventHandler::handleWheelEvent( |
| 1264 const PlatformWheelEvent& event) { | 1275 const PlatformWheelEvent& event) { |
| 1265 #if OS(MACOSX) | 1276 #if OS(MACOSX) |
| 1266 // Filter Mac OS specific phases, usually with a zero-delta. | 1277 // Filter Mac OS specific phases, usually with a zero-delta. |
| 1267 // https://crbug.com/553732 | 1278 // https://crbug.com/553732 |
| 1268 // TODO(chongz): EventSender sends events with |PlatformWheelEventPhaseNone|, | 1279 // TODO(chongz): EventSender sends events with |PlatformWheelEventPhaseNone|, |
| 1269 // but it shouldn't. | 1280 // but it shouldn't. |
| (...skipping 784 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2054 | 2065 |
| 2055 // Send mouse entered if we're setting a new scrollbar. | 2066 // Send mouse entered if we're setting a new scrollbar. |
| 2056 if (scrollbar && setLast) | 2067 if (scrollbar && setLast) |
| 2057 scrollbar->mouseEntered(); | 2068 scrollbar->mouseEntered(); |
| 2058 | 2069 |
| 2059 m_lastScrollbarUnderMouse = setLast ? scrollbar : nullptr; | 2070 m_lastScrollbarUnderMouse = setLast ? scrollbar : nullptr; |
| 2060 } | 2071 } |
| 2061 } | 2072 } |
| 2062 | 2073 |
| 2063 WebInputEventResult EventHandler::handleTouchEvent( | 2074 WebInputEventResult EventHandler::handleTouchEvent( |
| 2064 const PlatformTouchEvent& event) { | 2075 const PlatformTouchEvent& event, |
| 2076 const Vector<PlatformTouchEvent>& coalescedEvents) { |
| 2065 TRACE_EVENT0("blink", "EventHandler::handleTouchEvent"); | 2077 TRACE_EVENT0("blink", "EventHandler::handleTouchEvent"); |
| 2066 return m_pointerEventManager->handleTouchEvents(event); | 2078 return m_pointerEventManager->handleTouchEvents(event, coalescedEvents); |
| 2067 } | 2079 } |
| 2068 | 2080 |
| 2069 WebInputEventResult EventHandler::passMousePressEventToSubframe( | 2081 WebInputEventResult EventHandler::passMousePressEventToSubframe( |
| 2070 MouseEventWithHitTestResults& mev, | 2082 MouseEventWithHitTestResults& mev, |
| 2071 LocalFrame* subframe) { | 2083 LocalFrame* subframe) { |
| 2072 selectionController().passMousePressEventToSubframe(mev); | 2084 selectionController().passMousePressEventToSubframe(mev); |
| 2073 WebInputEventResult result = | 2085 WebInputEventResult result = |
| 2074 subframe->eventHandler().handleMousePressEvent(mev.event()); | 2086 subframe->eventHandler().handleMousePressEvent(mev.event()); |
| 2075 if (result != WebInputEventResult::NotHandled) | 2087 if (result != WebInputEventResult::NotHandled) |
| 2076 return result; | 2088 return result; |
| 2077 return WebInputEventResult::HandledSystem; | 2089 return WebInputEventResult::HandledSystem; |
| 2078 } | 2090 } |
| 2079 | 2091 |
| 2080 WebInputEventResult EventHandler::passMouseMoveEventToSubframe( | 2092 WebInputEventResult EventHandler::passMouseMoveEventToSubframe( |
| 2081 MouseEventWithHitTestResults& mev, | 2093 MouseEventWithHitTestResults& mev, |
| 2094 const Vector<PlatformMouseEvent>& coalescedEvents, |
| 2082 LocalFrame* subframe, | 2095 LocalFrame* subframe, |
| 2083 HitTestResult* hoveredNode) { | 2096 HitTestResult* hoveredNode) { |
| 2084 if (m_mouseEventManager->mouseDownMayStartDrag()) | 2097 if (m_mouseEventManager->mouseDownMayStartDrag()) |
| 2085 return WebInputEventResult::NotHandled; | 2098 return WebInputEventResult::NotHandled; |
| 2086 WebInputEventResult result = | 2099 WebInputEventResult result = |
| 2087 subframe->eventHandler().handleMouseMoveOrLeaveEvent(mev.event(), | 2100 subframe->eventHandler().handleMouseMoveOrLeaveEvent( |
| 2088 hoveredNode); | 2101 mev.event(), coalescedEvents, hoveredNode); |
| 2089 if (result != WebInputEventResult::NotHandled) | 2102 if (result != WebInputEventResult::NotHandled) |
| 2090 return result; | 2103 return result; |
| 2091 return WebInputEventResult::HandledSystem; | 2104 return WebInputEventResult::HandledSystem; |
| 2092 } | 2105 } |
| 2093 | 2106 |
| 2094 WebInputEventResult EventHandler::passMouseReleaseEventToSubframe( | 2107 WebInputEventResult EventHandler::passMouseReleaseEventToSubframe( |
| 2095 MouseEventWithHitTestResults& mev, | 2108 MouseEventWithHitTestResults& mev, |
| 2096 LocalFrame* subframe) { | 2109 LocalFrame* subframe) { |
| 2097 WebInputEventResult result = | 2110 WebInputEventResult result = |
| 2098 subframe->eventHandler().handleMouseReleaseEvent(mev.event()); | 2111 subframe->eventHandler().handleMouseReleaseEvent(mev.event()); |
| 2099 if (result != WebInputEventResult::NotHandled) | 2112 if (result != WebInputEventResult::NotHandled) |
| 2100 return result; | 2113 return result; |
| 2101 return WebInputEventResult::HandledSystem; | 2114 return WebInputEventResult::HandledSystem; |
| 2102 } | 2115 } |
| 2103 | 2116 |
| 2104 FrameHost* EventHandler::frameHost() const { | 2117 FrameHost* EventHandler::frameHost() const { |
| 2105 if (!m_frame->page()) | 2118 if (!m_frame->page()) |
| 2106 return nullptr; | 2119 return nullptr; |
| 2107 | 2120 |
| 2108 return &m_frame->page()->frameHost(); | 2121 return &m_frame->page()->frameHost(); |
| 2109 } | 2122 } |
| 2110 | 2123 |
| 2111 } // namespace blink | 2124 } // namespace blink |
| OLD | NEW |