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 177 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
188 , m_clickCount(0) | 188 , m_clickCount(0) |
189 , m_shouldOnlyFireDragOverEvent(false) | 189 , m_shouldOnlyFireDragOverEvent(false) |
190 , m_mousePositionIsUnknown(true) | 190 , m_mousePositionIsUnknown(true) |
191 , m_mouseDownTimestamp(0) | 191 , m_mouseDownTimestamp(0) |
192 , m_pointerEventManager(frame) | 192 , m_pointerEventManager(frame) |
193 , m_scrollManager(frame) | 193 , m_scrollManager(frame) |
194 , m_keyboardEventManager(frame, &m_scrollManager) | 194 , m_keyboardEventManager(frame, &m_scrollManager) |
195 , m_longTapShouldInvokeContextMenu(false) | 195 , m_longTapShouldInvokeContextMenu(false) |
196 , m_activeIntervalTimer(this, &EventHandler::activeIntervalTimerFired) | 196 , m_activeIntervalTimer(this, &EventHandler::activeIntervalTimerFired) |
197 , m_lastShowPressTimestamp(0) | 197 , m_lastShowPressTimestamp(0) |
| 198 , m_suppressMouseEventsFromGestures(false) |
198 { | 199 { |
199 } | 200 } |
200 | 201 |
201 EventHandler::~EventHandler() | 202 EventHandler::~EventHandler() |
202 { | 203 { |
203 ASSERT(!m_fakeMouseMoveEventTimer.isActive()); | 204 ASSERT(!m_fakeMouseMoveEventTimer.isActive()); |
204 } | 205 } |
205 | 206 |
206 DEFINE_TRACE(EventHandler) | 207 DEFINE_TRACE(EventHandler) |
207 { | 208 { |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
255 m_lastShowPressTimestamp = 0; | 256 m_lastShowPressTimestamp = 0; |
256 m_lastDeferredTapElement = nullptr; | 257 m_lastDeferredTapElement = nullptr; |
257 m_eventHandlerWillResetCapturingMouseEventsNode = false; | 258 m_eventHandlerWillResetCapturingMouseEventsNode = false; |
258 m_mouseDownMayStartAutoscroll = false; | 259 m_mouseDownMayStartAutoscroll = false; |
259 m_svgPan = false; | 260 m_svgPan = false; |
260 m_mouseDownPos = IntPoint(); | 261 m_mouseDownPos = IntPoint(); |
261 m_mouseDownTimestamp = 0; | 262 m_mouseDownTimestamp = 0; |
262 m_longTapShouldInvokeContextMenu = false; | 263 m_longTapShouldInvokeContextMenu = false; |
263 m_dragStartPos = LayoutPoint(); | 264 m_dragStartPos = LayoutPoint(); |
264 m_mouseDown = PlatformMouseEvent(); | 265 m_mouseDown = PlatformMouseEvent(); |
| 266 m_suppressMouseEventsFromGestures = false; |
265 } | 267 } |
266 | 268 |
267 WebInputEventResult EventHandler::mergeEventResult( | 269 WebInputEventResult EventHandler::mergeEventResult( |
268 WebInputEventResult resultA, WebInputEventResult resultB) | 270 WebInputEventResult resultA, WebInputEventResult resultB) |
269 { | 271 { |
270 // The ordering of the enumeration is specific. There are times that | 272 // The ordering of the enumeration is specific. There are times that |
271 // multiple events fire and we need to combine them into a single | 273 // multiple events fire and we need to combine them into a single |
272 // result code. The enumeration is based on the level of consumption that | 274 // result code. The enumeration is based on the level of consumption that |
273 // is most significant. The enumeration is ordered with smaller specified | 275 // is most significant. The enumeration is ordered with smaller specified |
274 // numbers first. Examples of merged results are: | 276 // numbers first. Examples of merged results are: |
(...skipping 1442 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1717 if (gestureDomEvent) { | 1719 if (gestureDomEvent) { |
1718 DispatchEventResult gestureDomEventResult = eventTarget->dispatchEve
nt(gestureDomEvent); | 1720 DispatchEventResult gestureDomEventResult = eventTarget->dispatchEve
nt(gestureDomEvent); |
1719 if (gestureDomEventResult != DispatchEventResult::NotCanceled) { | 1721 if (gestureDomEventResult != DispatchEventResult::NotCanceled) { |
1720 ASSERT(gestureDomEventResult != DispatchEventResult::CanceledByE
ventHandler); | 1722 ASSERT(gestureDomEventResult != DispatchEventResult::CanceledByE
ventHandler); |
1721 return toWebInputEventResult(gestureDomEventResult); | 1723 return toWebInputEventResult(gestureDomEventResult); |
1722 } | 1724 } |
1723 } | 1725 } |
1724 } | 1726 } |
1725 | 1727 |
1726 switch (gestureEvent.type()) { | 1728 switch (gestureEvent.type()) { |
| 1729 case PlatformEvent::GestureTapDown: |
| 1730 return handleGestureTapDown(targetedEvent); |
1727 case PlatformEvent::GestureTap: | 1731 case PlatformEvent::GestureTap: |
1728 return handleGestureTap(targetedEvent); | 1732 return handleGestureTap(targetedEvent); |
1729 case PlatformEvent::GestureShowPress: | 1733 case PlatformEvent::GestureShowPress: |
1730 return handleGestureShowPress(); | 1734 return handleGestureShowPress(); |
1731 case PlatformEvent::GestureLongPress: | 1735 case PlatformEvent::GestureLongPress: |
1732 return handleGestureLongPress(targetedEvent); | 1736 return handleGestureLongPress(targetedEvent); |
1733 case PlatformEvent::GestureLongTap: | 1737 case PlatformEvent::GestureLongTap: |
1734 return handleGestureLongTap(targetedEvent); | 1738 return handleGestureLongTap(targetedEvent); |
1735 case PlatformEvent::GestureTwoFingerTap: | 1739 case PlatformEvent::GestureTwoFingerTap: |
1736 return sendContextMenuEventForGesture(targetedEvent); | 1740 return sendContextMenuEventForGesture(targetedEvent); |
1737 case PlatformEvent::GestureTapDown: | |
1738 case PlatformEvent::GesturePinchBegin: | 1741 case PlatformEvent::GesturePinchBegin: |
1739 case PlatformEvent::GesturePinchEnd: | 1742 case PlatformEvent::GesturePinchEnd: |
1740 case PlatformEvent::GesturePinchUpdate: | 1743 case PlatformEvent::GesturePinchUpdate: |
1741 case PlatformEvent::GestureTapDownCancel: | 1744 case PlatformEvent::GestureTapDownCancel: |
1742 case PlatformEvent::GestureTapUnconfirmed: | 1745 case PlatformEvent::GestureTapUnconfirmed: |
1743 break; | 1746 break; |
1744 default: | 1747 default: |
1745 ASSERT_NOT_REACHED(); | 1748 ASSERT_NOT_REACHED(); |
1746 } | 1749 } |
1747 | 1750 |
1748 return WebInputEventResult::NotHandled; | 1751 return WebInputEventResult::NotHandled; |
1749 } | 1752 } |
1750 | 1753 |
1751 WebInputEventResult EventHandler::handleGestureScrollEvent(const PlatformGesture
Event& gestureEvent) | 1754 WebInputEventResult EventHandler::handleGestureScrollEvent(const PlatformGesture
Event& gestureEvent) |
1752 { | 1755 { |
1753 TRACE_EVENT0("input", "EventHandler::handleGestureScrollEvent"); | 1756 TRACE_EVENT0("input", "EventHandler::handleGestureScrollEvent"); |
1754 | 1757 |
1755 return m_scrollManager.handleGestureScrollEvent(gestureEvent); | 1758 return m_scrollManager.handleGestureScrollEvent(gestureEvent); |
1756 } | 1759 } |
1757 | 1760 |
| 1761 WebInputEventResult EventHandler::handleGestureTapDown(const GestureEventWithHit
TestResults& targetedEvent) |
| 1762 { |
| 1763 m_suppressMouseEventsFromGestures = |
| 1764 m_pointerEventManager.primaryPointerdownCanceled(targetedEvent.event().u
niqueTouchEventId()); |
| 1765 return WebInputEventResult::NotHandled; |
| 1766 } |
| 1767 |
1758 WebInputEventResult EventHandler::handleGestureTap(const GestureEventWithHitTest
Results& targetedEvent) | 1768 WebInputEventResult EventHandler::handleGestureTap(const GestureEventWithHitTest
Results& targetedEvent) |
1759 { | 1769 { |
1760 FrameView* frameView(m_frame->view()); | 1770 FrameView* frameView(m_frame->view()); |
1761 const PlatformGestureEvent& gestureEvent = targetedEvent.event(); | 1771 const PlatformGestureEvent& gestureEvent = targetedEvent.event(); |
1762 HitTestRequest::HitTestRequestType hitType = getHitTypeForGestureType(gestur
eEvent.type()); | 1772 HitTestRequest::HitTestRequestType hitType = getHitTypeForGestureType(gestur
eEvent.type()); |
1763 uint64_t preDispatchDomTreeVersion = m_frame->document()->domTreeVersion(); | 1773 uint64_t preDispatchDomTreeVersion = m_frame->document()->domTreeVersion(); |
1764 uint64_t preDispatchStyleVersion = m_frame->document()->styleVersion(); | 1774 uint64_t preDispatchStyleVersion = m_frame->document()->styleVersion(); |
1765 | 1775 |
1766 UserGestureIndicator gestureIndicator(DefinitelyProcessingUserGesture); | 1776 UserGestureIndicator gestureIndicator(DefinitelyProcessingUserGesture); |
1767 | 1777 |
1768 HitTestResult currentHitTest = targetedEvent.hitTestResult(); | 1778 HitTestResult currentHitTest = targetedEvent.hitTestResult(); |
1769 | 1779 |
1770 // We use the adjusted position so the application isn't surprised to see a
event with | 1780 // We use the adjusted position so the application isn't surprised to see a
event with |
1771 // co-ordinates outside the target's bounds. | 1781 // co-ordinates outside the target's bounds. |
1772 IntPoint adjustedPoint = frameView->rootFrameToContents(gestureEvent.positio
n()); | 1782 IntPoint adjustedPoint = frameView->rootFrameToContents(gestureEvent.positio
n()); |
1773 | 1783 |
1774 unsigned modifiers = gestureEvent.getModifiers(); | 1784 const unsigned modifiers = gestureEvent.getModifiers(); |
1775 PlatformMouseEvent fakeMouseMove(gestureEvent.position(), gestureEvent.globa
lPosition(), | 1785 |
1776 NoButton, PlatformEvent::MouseMoved, /* clickCount */ 0, | 1786 if (!m_suppressMouseEventsFromGestures) { |
1777 static_cast<PlatformEvent::Modifiers>(modifiers), | 1787 PlatformMouseEvent fakeMouseMove(gestureEvent.position(), gestureEvent.g
lobalPosition(), |
1778 PlatformMouseEvent::FromTouch, gestureEvent.timestamp(), WebPointerPrope
rties::PointerType::Mouse); | 1788 NoButton, PlatformEvent::MouseMoved, /* clickCount */ 0, |
1779 dispatchMouseEvent(EventTypeNames::mousemove, currentHitTest.innerNode(), 0,
fakeMouseMove); | 1789 static_cast<PlatformEvent::Modifiers>(modifiers), |
| 1790 PlatformMouseEvent::FromTouch, gestureEvent.timestamp(), WebPointerP
roperties::PointerType::Mouse); |
| 1791 dispatchMouseEvent(EventTypeNames::mousemove, currentHitTest.innerNode()
, 0, fakeMouseMove); |
| 1792 } |
1780 | 1793 |
1781 // Do a new hit-test in case the mousemove event changed the DOM. | 1794 // Do a new hit-test in case the mousemove event changed the DOM. |
1782 // Note that if the original hit test wasn't over an element (eg. was over a
scrollbar) we | 1795 // Note that if the original hit test wasn't over an element (eg. was over a
scrollbar) we |
1783 // don't want to re-hit-test because it may be in the wrong frame (and there
's no way the page | 1796 // don't want to re-hit-test because it may be in the wrong frame (and there
's no way the page |
1784 // could have seen the event anyway). | 1797 // could have seen the event anyway). |
1785 // Also note that the position of the frame may have changed, so we need to
recompute the content | 1798 // Also note that the position of the frame may have changed, so we need to
recompute the content |
1786 // co-ordinates (updating layout/style as hitTestResultAtPoint normally woul
d). | 1799 // co-ordinates (updating layout/style as hitTestResultAtPoint normally woul
d). |
1787 // FIXME: Use a hit-test cache to avoid unnecessary hit tests. http://crbug.
com/398920 | 1800 // FIXME: Use a hit-test cache to avoid unnecessary hit tests. http://crbug.
com/398920 |
1788 if (currentHitTest.innerNode()) { | 1801 if (currentHitTest.innerNode()) { |
1789 LocalFrame* mainFrame = m_frame->localFrameRoot(); | 1802 LocalFrame* mainFrame = m_frame->localFrameRoot(); |
1790 if (mainFrame && mainFrame->view()) | 1803 if (mainFrame && mainFrame->view()) |
1791 mainFrame->view()->updateLifecycleToCompositingCleanPlusScrolling(); | 1804 mainFrame->view()->updateLifecycleToCompositingCleanPlusScrolling(); |
1792 adjustedPoint = frameView->rootFrameToContents(gestureEvent.position()); | 1805 adjustedPoint = frameView->rootFrameToContents(gestureEvent.position()); |
1793 currentHitTest = hitTestResultInFrame(m_frame, adjustedPoint, hitType); | 1806 currentHitTest = hitTestResultInFrame(m_frame, adjustedPoint, hitType); |
1794 } | 1807 } |
1795 m_clickNode = currentHitTest.innerNode(); | 1808 m_clickNode = currentHitTest.innerNode(); |
1796 | 1809 |
1797 // Capture data for showUnhandledTapUIIfNeeded. | 1810 // Capture data for showUnhandledTapUIIfNeeded. |
1798 Node* tappedNode = m_clickNode; | 1811 Node* tappedNode = m_clickNode; |
1799 IntPoint tappedPosition = gestureEvent.position(); | 1812 IntPoint tappedPosition = gestureEvent.position(); |
1800 | 1813 |
1801 if (m_clickNode && m_clickNode->isTextNode()) | 1814 if (m_clickNode && m_clickNode->isTextNode()) |
1802 m_clickNode = FlatTreeTraversal::parent(*m_clickNode); | 1815 m_clickNode = FlatTreeTraversal::parent(*m_clickNode); |
1803 | 1816 |
1804 PlatformMouseEvent fakeMouseDown(gestureEvent.position(), gestureEvent.globa
lPosition(), | 1817 PlatformMouseEvent fakeMouseDown(gestureEvent.position(), gestureEvent.globa
lPosition(), |
1805 LeftButton, PlatformEvent::MousePressed, gestureEvent.tapCount(), | 1818 LeftButton, PlatformEvent::MousePressed, gestureEvent.tapCount(), |
1806 static_cast<PlatformEvent::Modifiers>(modifiers | PlatformEvent::LeftBut
tonDown), | 1819 static_cast<PlatformEvent::Modifiers>(modifiers | PlatformEvent::LeftBut
tonDown), |
1807 PlatformMouseEvent::FromTouch, gestureEvent.timestamp(), WebPointerProp
erties::PointerType::Mouse); | 1820 PlatformMouseEvent::FromTouch, gestureEvent.timestamp(), WebPointerPrope
rties::PointerType::Mouse); |
1808 WebInputEventResult mouseDownEventResult = dispatchMouseEvent(EventTypeNames
::mousedown, currentHitTest.innerNode(), gestureEvent.tapCount(), fakeMouseDown)
; | 1821 |
1809 selectionController().initializeSelectionState(); | 1822 // TODO(mustaq): We suppress MEs plus all it's side effects. What would that |
1810 if (mouseDownEventResult == WebInputEventResult::NotHandled) | 1823 // mean for for TEs? What's the right balance here? crbug.com/617255 |
1811 mouseDownEventResult = handleMouseFocus(MouseEventWithHitTestResults(fak
eMouseDown, currentHitTest), InputDeviceCapabilities::firesTouchEventsSourceCapa
bilities()); | 1824 WebInputEventResult mouseDownEventResult = WebInputEventResult::HandledSuppr
essed; |
1812 if (mouseDownEventResult == WebInputEventResult::NotHandled) | 1825 if (!m_suppressMouseEventsFromGestures) { |
1813 mouseDownEventResult = handleMousePressEvent(MouseEventWithHitTestResult
s(fakeMouseDown, currentHitTest)); | 1826 mouseDownEventResult = dispatchMouseEvent(EventTypeNames::mousedown, cur
rentHitTest.innerNode(), gestureEvent.tapCount(), fakeMouseDown); |
| 1827 selectionController().initializeSelectionState(); |
| 1828 if (mouseDownEventResult == WebInputEventResult::NotHandled) |
| 1829 mouseDownEventResult = handleMouseFocus(MouseEventWithHitTestResults
(fakeMouseDown, currentHitTest), InputDeviceCapabilities::firesTouchEventsSource
Capabilities()); |
| 1830 if (mouseDownEventResult == WebInputEventResult::NotHandled) |
| 1831 mouseDownEventResult = handleMousePressEvent(MouseEventWithHitTestRe
sults(fakeMouseDown, currentHitTest)); |
| 1832 } |
1814 | 1833 |
1815 if (currentHitTest.innerNode()) { | 1834 if (currentHitTest.innerNode()) { |
1816 ASSERT(gestureEvent.type() == PlatformEvent::GestureTap); | 1835 ASSERT(gestureEvent.type() == PlatformEvent::GestureTap); |
1817 HitTestResult result = currentHitTest; | 1836 HitTestResult result = currentHitTest; |
1818 result.setToShadowHostIfInUserAgentShadowRoot(); | 1837 result.setToShadowHostIfInUserAgentShadowRoot(); |
1819 m_frame->chromeClient().onMouseDown(result.innerNode()); | 1838 m_frame->chromeClient().onMouseDown(result.innerNode()); |
1820 } | 1839 } |
1821 | 1840 |
1822 // FIXME: Use a hit-test cache to avoid unnecessary hit tests. http://crbug.
com/398920 | 1841 // FIXME: Use a hit-test cache to avoid unnecessary hit tests. http://crbug.
com/398920 |
1823 if (currentHitTest.innerNode()) { | 1842 if (currentHitTest.innerNode()) { |
1824 LocalFrame* mainFrame = m_frame->localFrameRoot(); | 1843 LocalFrame* mainFrame = m_frame->localFrameRoot(); |
1825 if (mainFrame && mainFrame->view()) | 1844 if (mainFrame && mainFrame->view()) |
1826 mainFrame->view()->updateAllLifecyclePhases(); | 1845 mainFrame->view()->updateAllLifecyclePhases(); |
1827 adjustedPoint = frameView->rootFrameToContents(gestureEvent.position()); | 1846 adjustedPoint = frameView->rootFrameToContents(gestureEvent.position()); |
1828 currentHitTest = hitTestResultInFrame(m_frame, adjustedPoint, hitType); | 1847 currentHitTest = hitTestResultInFrame(m_frame, adjustedPoint, hitType); |
1829 } | 1848 } |
| 1849 |
1830 PlatformMouseEvent fakeMouseUp(gestureEvent.position(), gestureEvent.globalP
osition(), | 1850 PlatformMouseEvent fakeMouseUp(gestureEvent.position(), gestureEvent.globalP
osition(), |
1831 LeftButton, PlatformEvent::MouseReleased, gestureEvent.tapCount(), | 1851 LeftButton, PlatformEvent::MouseReleased, gestureEvent.tapCount(), |
1832 static_cast<PlatformEvent::Modifiers>(modifiers), | 1852 static_cast<PlatformEvent::Modifiers>(modifiers), |
1833 PlatformMouseEvent::FromTouch, gestureEvent.timestamp(), WebPointerProp
erties::PointerType::Mouse); | 1853 PlatformMouseEvent::FromTouch, gestureEvent.timestamp(), WebPointerPrope
rties::PointerType::Mouse); |
1834 WebInputEventResult mouseUpEventResult = dispatchMouseEvent(EventTypeNames::
mouseup, currentHitTest.innerNode(), gestureEvent.tapCount(), fakeMouseUp); | 1854 WebInputEventResult mouseUpEventResult = m_suppressMouseEventsFromGestures |
| 1855 ? WebInputEventResult::HandledSuppressed |
| 1856 : dispatchMouseEvent(EventTypeNames::mouseup, currentHitTest.innerNode()
, gestureEvent.tapCount(), fakeMouseUp); |
1835 | 1857 |
1836 WebInputEventResult clickEventResult = WebInputEventResult::NotHandled; | 1858 WebInputEventResult clickEventResult = WebInputEventResult::NotHandled; |
1837 if (m_clickNode) { | 1859 if (m_clickNode) { |
1838 if (currentHitTest.innerNode()) { | 1860 if (currentHitTest.innerNode()) { |
1839 // Updates distribution because a mouseup (or mousedown) event liste
ner can make the | 1861 // Updates distribution because a mouseup (or mousedown) event liste
ner can make the |
1840 // tree dirty at dispatchMouseEvent() invocation above. | 1862 // tree dirty at dispatchMouseEvent() invocation above. |
1841 // Unless distribution is updated, commonAncestor would hit ASSERT. | 1863 // Unless distribution is updated, commonAncestor would hit ASSERT. |
1842 // Both m_clickNode and currentHitTest.innerNode()) don't need to be
updated | 1864 // Both m_clickNode and currentHitTest.innerNode()) don't need to be
updated |
1843 // because commonAncestor() will exit early if their documents are d
ifferent. | 1865 // because commonAncestor() will exit early if their documents are d
ifferent. |
1844 m_clickNode->updateDistribution(); | 1866 m_clickNode->updateDistribution(); |
(...skipping 23 matching lines...) Expand all Loading... |
1868 IntPoint adjustedPoint = gestureEvent.position(); | 1890 IntPoint adjustedPoint = gestureEvent.position(); |
1869 | 1891 |
1870 unsigned modifiers = gestureEvent.getModifiers(); | 1892 unsigned modifiers = gestureEvent.getModifiers(); |
1871 | 1893 |
1872 // FIXME: Ideally we should try to remove the extra mouse-specific hit-tests
here (re-using the | 1894 // FIXME: Ideally we should try to remove the extra mouse-specific hit-tests
here (re-using the |
1873 // supplied HitTestResult), but that will require some overhaul of the touch
drag-and-drop code | 1895 // supplied HitTestResult), but that will require some overhaul of the touch
drag-and-drop code |
1874 // and LongPress is such a special scenario that it's unlikely to matter muc
h in practice. | 1896 // and LongPress is such a special scenario that it's unlikely to matter muc
h in practice. |
1875 | 1897 |
1876 m_longTapShouldInvokeContextMenu = false; | 1898 m_longTapShouldInvokeContextMenu = false; |
1877 if (m_frame->settings() && m_frame->settings()->touchDragDropEnabled() && m_
frame->view()) { | 1899 if (m_frame->settings() && m_frame->settings()->touchDragDropEnabled() && m_
frame->view()) { |
| 1900 // TODO(mustaq): Suppressing long-tap MouseEvents could break |
| 1901 // drag-drop. Will do separately because of the risk. crbug.com/606938. |
1878 PlatformMouseEvent mouseDownEvent(adjustedPoint, gestureEvent.globalPosi
tion(), LeftButton, PlatformEvent::MousePressed, 1, | 1902 PlatformMouseEvent mouseDownEvent(adjustedPoint, gestureEvent.globalPosi
tion(), LeftButton, PlatformEvent::MousePressed, 1, |
1879 static_cast<PlatformEvent::Modifiers>(modifiers | PlatformEvent::Lef
tButtonDown), | 1903 static_cast<PlatformEvent::Modifiers>(modifiers | PlatformEvent::Lef
tButtonDown), |
1880 PlatformMouseEvent::FromTouch, WTF::monotonicallyIncreasingTime(), W
ebPointerProperties::PointerType::Mouse); | 1904 PlatformMouseEvent::FromTouch, WTF::monotonicallyIncreasingTime(), W
ebPointerProperties::PointerType::Mouse); |
1881 m_mouseDown = mouseDownEvent; | 1905 m_mouseDown = mouseDownEvent; |
1882 | 1906 |
1883 PlatformMouseEvent mouseDragEvent(adjustedPoint, gestureEvent.globalPosi
tion(), LeftButton, PlatformEvent::MouseMoved, 1, | 1907 PlatformMouseEvent mouseDragEvent(adjustedPoint, gestureEvent.globalPosi
tion(), LeftButton, PlatformEvent::MouseMoved, 1, |
1884 static_cast<PlatformEvent::Modifiers>(modifiers | PlatformEvent::Lef
tButtonDown), | 1908 static_cast<PlatformEvent::Modifiers>(modifiers | PlatformEvent::Lef
tButtonDown), |
1885 PlatformMouseEvent::FromTouch, WTF::monotonicallyIncreasingTime(), W
ebPointerProperties::PointerType::Mouse); | 1909 PlatformMouseEvent::FromTouch, WTF::monotonicallyIncreasingTime(), W
ebPointerProperties::PointerType::Mouse); |
1886 HitTestRequest request(HitTestRequest::ReadOnly); | 1910 HitTestRequest request(HitTestRequest::ReadOnly); |
1887 MouseEventWithHitTestResults mev = prepareMouseEvent(request, mouseDragE
vent); | 1911 MouseEventWithHitTestResults mev = prepareMouseEvent(request, mouseDragE
vent); |
(...skipping 877 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2765 if (!rect.contains(roundedIntPoint(point))) | 2789 if (!rect.contains(roundedIntPoint(point))) |
2766 return result; | 2790 return result; |
2767 } | 2791 } |
2768 frame->contentLayoutItem().hitTest(result); | 2792 frame->contentLayoutItem().hitTest(result); |
2769 return result; | 2793 return result; |
2770 } | 2794 } |
2771 | 2795 |
2772 WebInputEventResult EventHandler::handleTouchEvent(const PlatformTouchEvent& eve
nt) | 2796 WebInputEventResult EventHandler::handleTouchEvent(const PlatformTouchEvent& eve
nt) |
2773 { | 2797 { |
2774 TRACE_EVENT0("blink", "EventHandler::handleTouchEvent"); | 2798 TRACE_EVENT0("blink", "EventHandler::handleTouchEvent"); |
2775 | |
2776 return m_pointerEventManager.handleTouchEvents(event); | 2799 return m_pointerEventManager.handleTouchEvents(event); |
2777 } | 2800 } |
2778 | 2801 |
2779 void EventHandler::setLastKnownMousePosition(const PlatformMouseEvent& event) | 2802 void EventHandler::setLastKnownMousePosition(const PlatformMouseEvent& event) |
2780 { | 2803 { |
2781 m_mousePositionIsUnknown = false; | 2804 m_mousePositionIsUnknown = false; |
2782 m_lastKnownMousePosition = event.position(); | 2805 m_lastKnownMousePosition = event.position(); |
2783 m_lastKnownMouseGlobalPosition = event.globalPosition(); | 2806 m_lastKnownMouseGlobalPosition = event.globalPosition(); |
2784 } | 2807 } |
2785 | 2808 |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2825 | 2848 |
2826 FrameHost* EventHandler::frameHost() const | 2849 FrameHost* EventHandler::frameHost() const |
2827 { | 2850 { |
2828 if (!m_frame->page()) | 2851 if (!m_frame->page()) |
2829 return nullptr; | 2852 return nullptr; |
2830 | 2853 |
2831 return &m_frame->page()->frameHost(); | 2854 return &m_frame->page()->frameHost(); |
2832 } | 2855 } |
2833 | 2856 |
2834 } // namespace blink | 2857 } // namespace blink |
OLD | NEW |