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