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

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

Issue 831393003: Plumb hasPreciseScrollingDeltas into ScrollGranularity for overflow scrolls. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Remove testRunner.dumpAsText() Created 5 years, 11 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/core/events/WheelEvent.cpp ('k') | Source/web/tests/WebInputEventConversionTest.cpp » ('j') | 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 154 matching lines...) Expand 10 before | Expand all | Expand 10 after
165 ~MaximumDurationTracker() 165 ~MaximumDurationTracker()
166 { 166 {
167 *m_maxDuration = max(*m_maxDuration, monotonicallyIncreasingTime() - m_s tart); 167 *m_maxDuration = max(*m_maxDuration, monotonicallyIncreasingTime() - m_s tart);
168 } 168 }
169 169
170 private: 170 private:
171 double* m_maxDuration; 171 double* m_maxDuration;
172 double m_start; 172 double m_start;
173 }; 173 };
174 174
175 static inline ScrollGranularity wheelGranularityToScrollGranularity(unsigned del taMode) 175 static inline ScrollGranularity wheelGranularityToScrollGranularity(WheelEvent* event)
176 { 176 {
177 switch (deltaMode) { 177 unsigned deltaMode = event->deltaMode();
178 case WheelEvent::DOM_DELTA_PAGE: 178 if (deltaMode == WheelEvent::DOM_DELTA_PAGE)
179 return ScrollByPage; 179 return ScrollByPage;
180 case WheelEvent::DOM_DELTA_LINE: 180 if (deltaMode == WheelEvent::DOM_DELTA_LINE)
181 return ScrollByLine; 181 return ScrollByLine;
182 case WheelEvent::DOM_DELTA_PIXEL: 182 ASSERT(deltaMode == WheelEvent::DOM_DELTA_PIXEL);
183 return ScrollByPixel; 183 return event->hasPreciseScrollingDeltas() ? ScrollByPrecisePixel : ScrollByP ixel;
184 default:
185 return ScrollByPixel;
186 }
187 } 184 }
188 185
189 // Refetch the event target node if it is removed or currently is the shadow nod e inside an <input> element. 186 // Refetch the event target node if it is removed or currently is the shadow nod e inside an <input> element.
190 // If a mouse event handler changes the input element type to one that has a wid get associated, 187 // If a mouse event handler changes the input element type to one that has a wid get associated,
191 // we'd like to EventHandler::handleMousePressEvent to pass the event to the wid get and thus the 188 // we'd like to EventHandler::handleMousePressEvent to pass the event to the wid get and thus the
192 // event target node can't still be the shadow node. 189 // event target node can't still be the shadow node.
193 static inline bool shouldRefetchEventTarget(const MouseEventWithHitTestResults& mev) 190 static inline bool shouldRefetchEventTarget(const MouseEventWithHitTestResults& mev)
194 { 191 {
195 Node* targetNode = mev.innerNode(); 192 Node* targetNode = mev.innerNode();
196 if (!targetNode || !targetNode->parentNode()) 193 if (!targetNode || !targetNode->parentNode())
(...skipping 1840 matching lines...) Expand 10 before | Expand all | Expand 10 after
2037 void EventHandler::defaultWheelEventHandler(Node* startNode, WheelEvent* wheelEv ent) 2034 void EventHandler::defaultWheelEventHandler(Node* startNode, WheelEvent* wheelEv ent)
2038 { 2035 {
2039 if (!startNode || !wheelEvent) 2036 if (!startNode || !wheelEvent)
2040 return; 2037 return;
2041 2038
2042 // Ctrl + scrollwheel is reserved for triggering zoom in/out actions in Chro mium. 2039 // Ctrl + scrollwheel is reserved for triggering zoom in/out actions in Chro mium.
2043 if (wheelEvent->ctrlKey()) 2040 if (wheelEvent->ctrlKey())
2044 return; 2041 return;
2045 2042
2046 Node* stopNode = m_previousWheelScrolledNode.get(); 2043 Node* stopNode = m_previousWheelScrolledNode.get();
2047 ScrollGranularity granularity = wheelGranularityToScrollGranularity(wheelEve nt->deltaMode()); 2044 ScrollGranularity granularity = wheelGranularityToScrollGranularity(wheelEve nt);
2048 2045
2049 // Break up into two scrolls if we need to. Diagonal movement on 2046 // Break up into two scrolls if we need to. Diagonal movement on
2050 // a MacBook pro is an example of a 2-dimensional mouse wheel event (where b oth deltaX and deltaY can be set). 2047 // a MacBook pro is an example of a 2-dimensional mouse wheel event (where b oth deltaX and deltaY can be set).
2051 if (scroll(ScrollRight, granularity, startNode, &stopNode, wheelEvent->delta X(), roundedIntPoint(wheelEvent->absoluteLocation()))) 2048 if (scroll(ScrollRight, granularity, startNode, &stopNode, wheelEvent->delta X(), roundedIntPoint(wheelEvent->absoluteLocation())))
2052 wheelEvent->setDefaultHandled(); 2049 wheelEvent->setDefaultHandled();
2053 2050
2054 if (scroll(ScrollDown, granularity, startNode, &stopNode, wheelEvent->deltaY (), roundedIntPoint(wheelEvent->absoluteLocation()))) 2051 if (scroll(ScrollDown, granularity, startNode, &stopNode, wheelEvent->deltaY (), roundedIntPoint(wheelEvent->absoluteLocation())))
2055 wheelEvent->setDefaultHandled(); 2052 wheelEvent->setDefaultHandled();
2056 2053
2057 if (!m_latchedWheelEventNode) 2054 if (!m_latchedWheelEventNode)
(...skipping 1826 matching lines...) Expand 10 before | Expand all | Expand 10 after
3884 unsigned EventHandler::accessKeyModifiers() 3881 unsigned EventHandler::accessKeyModifiers()
3885 { 3882 {
3886 #if OS(MACOSX) 3883 #if OS(MACOSX)
3887 return PlatformEvent::CtrlKey | PlatformEvent::AltKey; 3884 return PlatformEvent::CtrlKey | PlatformEvent::AltKey;
3888 #else 3885 #else
3889 return PlatformEvent::AltKey; 3886 return PlatformEvent::AltKey;
3890 #endif 3887 #endif
3891 } 3888 }
3892 3889
3893 } // namespace blink 3890 } // namespace blink
OLDNEW
« no previous file with comments | « Source/core/events/WheelEvent.cpp ('k') | Source/web/tests/WebInputEventConversionTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698