Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(457)

Side by Side Diff: Source/WebCore/page/EventHandler.cpp

Issue 12886025: Merge 145481 (Closed) Base URL: http://svn.webkit.org/repository/webkit/branches/chromium/1410/
Patch Set: Created 7 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « Source/WebCore/dom/UserGestureIndicator.cpp ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 1410 matching lines...) Expand 10 before | Expand all | Expand 10 after
1421 invalidateClick(); 1421 invalidateClick();
1422 return true; 1422 return true;
1423 } 1423 }
1424 1424
1425 #if ENABLE(TOUCH_EVENTS) 1425 #if ENABLE(TOUCH_EVENTS)
1426 bool defaultPrevented = dispatchSyntheticTouchEventIfEnabled(mouseEvent); 1426 bool defaultPrevented = dispatchSyntheticTouchEventIfEnabled(mouseEvent);
1427 if (defaultPrevented) 1427 if (defaultPrevented)
1428 return true; 1428 return true;
1429 #endif 1429 #endif
1430 1430
1431 UserGestureIndicator gestureIndicator(DefinitelyProcessingNewUserGesture); 1431 UserGestureIndicator gestureIndicator(DefinitelyProcessingUserGesture);
1432 m_lastMouseDownUserGestureToken = gestureIndicator.currentToken(); 1432 m_lastMouseDownUserGestureToken = gestureIndicator.currentToken();
1433 1433
1434 // FIXME (bug 68185): this call should be made at another abstraction layer 1434 // FIXME (bug 68185): this call should be made at another abstraction layer
1435 m_frame->loader()->resetMultipleFormSubmissionProtection(); 1435 m_frame->loader()->resetMultipleFormSubmissionProtection();
1436 1436
1437 cancelFakeMouseMoveEvent(); 1437 cancelFakeMouseMoveEvent();
1438 m_mousePressed = true; 1438 m_mousePressed = true;
1439 m_capturesDragging = true; 1439 m_capturesDragging = true;
1440 setLastKnownMousePosition(mouseEvent); 1440 setLastKnownMousePosition(mouseEvent);
1441 m_mouseDownTimestamp = mouseEvent.timestamp(); 1441 m_mouseDownTimestamp = mouseEvent.timestamp();
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
1555 return swallowEvent; 1555 return swallowEvent;
1556 } 1556 }
1557 1557
1558 // This method only exists for platforms that don't know how to deliver 1558 // This method only exists for platforms that don't know how to deliver
1559 bool EventHandler::handleMouseDoubleClickEvent(const PlatformMouseEvent& mouseEv ent) 1559 bool EventHandler::handleMouseDoubleClickEvent(const PlatformMouseEvent& mouseEv ent)
1560 { 1560 {
1561 RefPtr<FrameView> protector(m_frame->view()); 1561 RefPtr<FrameView> protector(m_frame->view());
1562 1562
1563 m_frame->selection()->setCaretBlinkingSuspended(false); 1563 m_frame->selection()->setCaretBlinkingSuspended(false);
1564 1564
1565 UserGestureIndicator gestureIndicator(DefinitelyProcessingNewUserGesture); 1565 UserGestureIndicator gestureIndicator(DefinitelyProcessingUserGesture);
1566 1566
1567 // We get this instead of a second mouse-up 1567 // We get this instead of a second mouse-up
1568 m_mousePressed = false; 1568 m_mousePressed = false;
1569 setLastKnownMousePosition(mouseEvent); 1569 setLastKnownMousePosition(mouseEvent);
1570 1570
1571 HitTestRequest request(HitTestRequest::Active); 1571 HitTestRequest request(HitTestRequest::Active);
1572 MouseEventWithHitTestResults mev = prepareMouseEvent(request, mouseEvent); 1572 MouseEventWithHitTestResults mev = prepareMouseEvent(request, mouseEvent);
1573 Frame* subframe = subframeForHitTestResult(mev); 1573 Frame* subframe = subframeForHitTestResult(mev);
1574 if (m_eventHandlerWillResetCapturingMouseEventsNode) 1574 if (m_eventHandlerWillResetCapturingMouseEventsNode)
1575 m_capturingMouseEventsNode = 0; 1575 m_capturingMouseEventsNode = 0;
(...skipping 222 matching lines...) Expand 10 before | Expand all | Expand 10 after
1798 bool defaultPrevented = dispatchSyntheticTouchEventIfEnabled(mouseEvent); 1798 bool defaultPrevented = dispatchSyntheticTouchEventIfEnabled(mouseEvent);
1799 if (defaultPrevented) 1799 if (defaultPrevented)
1800 return true; 1800 return true;
1801 #endif 1801 #endif
1802 1802
1803 OwnPtr<UserGestureIndicator> gestureIndicator; 1803 OwnPtr<UserGestureIndicator> gestureIndicator;
1804 1804
1805 if (m_lastMouseDownUserGestureToken) 1805 if (m_lastMouseDownUserGestureToken)
1806 gestureIndicator = adoptPtr(new UserGestureIndicator(m_lastMouseDownUser GestureToken.release())); 1806 gestureIndicator = adoptPtr(new UserGestureIndicator(m_lastMouseDownUser GestureToken.release()));
1807 else 1807 else
1808 gestureIndicator = adoptPtr(new UserGestureIndicator(DefinitelyProcessin gNewUserGesture)); 1808 gestureIndicator = adoptPtr(new UserGestureIndicator(DefinitelyProcessin gUserGesture));
1809 1809
1810 #if ENABLE(PAN_SCROLLING) 1810 #if ENABLE(PAN_SCROLLING)
1811 m_autoscrollController->handleMouseReleaseEvent(mouseEvent); 1811 m_autoscrollController->handleMouseReleaseEvent(mouseEvent);
1812 #endif 1812 #endif
1813 1813
1814 m_mousePressed = false; 1814 m_mousePressed = false;
1815 setLastKnownMousePosition(mouseEvent); 1815 setLastKnownMousePosition(mouseEvent);
1816 1816
1817 #if ENABLE(SVG) 1817 #if ENABLE(SVG)
1818 if (m_svgPan) { 1818 if (m_svgPan) {
(...skipping 1307 matching lines...) Expand 10 before | Expand all | Expand 10 after
3126 } 3126 }
3127 } 3127 }
3128 #endif 3128 #endif
3129 3129
3130 // Check for cases where we are too early for events -- possible unmatched k ey up 3130 // Check for cases where we are too early for events -- possible unmatched k ey up
3131 // from pressing return in the location bar. 3131 // from pressing return in the location bar.
3132 RefPtr<Node> node = eventTargetNodeForDocument(m_frame->document()); 3132 RefPtr<Node> node = eventTargetNodeForDocument(m_frame->document());
3133 if (!node) 3133 if (!node)
3134 return false; 3134 return false;
3135 3135
3136 UserGestureIndicator gestureIndicator(DefinitelyProcessingNewUserGesture); 3136 UserGestureIndicator gestureIndicator(DefinitelyProcessingUserGesture);
3137 UserTypingGestureIndicator typingGestureIndicator(m_frame); 3137 UserTypingGestureIndicator typingGestureIndicator(m_frame);
3138 3138
3139 if (FrameView* view = m_frame->view()) 3139 if (FrameView* view = m_frame->view())
3140 view->resetDeferredRepaintDelay(); 3140 view->resetDeferredRepaintDelay();
3141 3141
3142 // FIXME (bug 68185): this call should be made at another abstraction layer 3142 // FIXME (bug 68185): this call should be made at another abstraction layer
3143 m_frame->loader()->resetMultipleFormSubmissionProtection(); 3143 m_frame->loader()->resetMultipleFormSubmissionProtection();
3144 3144
3145 // In IE, access keys are special, they are handled after default keydown pr ocessing, but cannot be canceled - this is hard to match. 3145 // In IE, access keys are special, they are handled after default keydown pr ocessing, but cannot be canceled - this is hard to match.
3146 // On Mac OS X, we process them before dispatching keydown, as the default k eydown handler implements Emacs key bindings, which may conflict 3146 // On Mac OS X, we process them before dispatching keydown, as the default k eydown handler implements Emacs key bindings, which may conflict
(...skipping 677 matching lines...) Expand 10 before | Expand all | Expand 10 after
3824 typedef HashSet<RefPtr<EventTarget> > EventTargetSet; 3824 typedef HashSet<RefPtr<EventTarget> > EventTargetSet;
3825 struct { 3825 struct {
3826 // The touches corresponding to the particular change state this struct instance represents. 3826 // The touches corresponding to the particular change state this struct instance represents.
3827 RefPtr<TouchList> m_touches; 3827 RefPtr<TouchList> m_touches;
3828 // Set of targets involved in m_touches. 3828 // Set of targets involved in m_touches.
3829 EventTargetSet m_targets; 3829 EventTargetSet m_targets;
3830 } changedTouches[PlatformTouchPoint::TouchStateEnd]; 3830 } changedTouches[PlatformTouchPoint::TouchStateEnd];
3831 3831
3832 const Vector<PlatformTouchPoint>& points = event.touchPoints(); 3832 const Vector<PlatformTouchPoint>& points = event.touchPoints();
3833 3833
3834 UserGestureIndicator gestureIndicator(DefinitelyProcessingNewUserGesture); 3834 UserGestureIndicator gestureIndicator(DefinitelyProcessingUserGesture);
3835 3835
3836 unsigned i; 3836 unsigned i;
3837 bool freshTouchEvents = true; 3837 bool freshTouchEvents = true;
3838 bool allTouchReleased = true; 3838 bool allTouchReleased = true;
3839 for (i = 0; i < points.size(); ++i) { 3839 for (i = 0; i < points.size(); ++i) {
3840 const PlatformTouchPoint& point = points[i]; 3840 const PlatformTouchPoint& point = points[i];
3841 if (point.state() != PlatformTouchPoint::TouchPressed) 3841 if (point.state() != PlatformTouchPoint::TouchPressed)
3842 freshTouchEvents = false; 3842 freshTouchEvents = false;
3843 if (point.state() != PlatformTouchPoint::TouchReleased && point.state() != PlatformTouchPoint::TouchCancelled) 3843 if (point.state() != PlatformTouchPoint::TouchReleased && point.state() != PlatformTouchPoint::TouchCancelled)
3844 allTouchReleased = false; 3844 allTouchReleased = false;
(...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after
4046 #endif 4046 #endif
4047 4047
4048 void EventHandler::setLastKnownMousePosition(const PlatformMouseEvent& event) 4048 void EventHandler::setLastKnownMousePosition(const PlatformMouseEvent& event)
4049 { 4049 {
4050 m_mousePositionIsUnknown = false; 4050 m_mousePositionIsUnknown = false;
4051 m_lastKnownMousePosition = event.position(); 4051 m_lastKnownMousePosition = event.position();
4052 m_lastKnownMouseGlobalPosition = event.globalPosition(); 4052 m_lastKnownMouseGlobalPosition = event.globalPosition();
4053 } 4053 }
4054 4054
4055 } // namespace WebCore 4055 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/WebCore/dom/UserGestureIndicator.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698