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

Unified Diff: third_party/WebKit/Source/core/input/EventHandler.h

Issue 2010133003: Add ScrollManager class (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Adding TODOs Created 4 years, 7 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « third_party/WebKit/Source/core/core.gypi ('k') | third_party/WebKit/Source/core/input/EventHandler.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/WebKit/Source/core/input/EventHandler.h
diff --git a/third_party/WebKit/Source/core/input/EventHandler.h b/third_party/WebKit/Source/core/input/EventHandler.h
index 3540478480c037b875b9a4bae99ffde28c3066ba..0a37b77390be8b54d4c2034d1d1b8d1330e39dcb 100644
--- a/third_party/WebKit/Source/core/input/EventHandler.h
+++ b/third_party/WebKit/Source/core/input/EventHandler.h
@@ -29,6 +29,7 @@
#include "core/CoreExport.h"
#include "core/events/TextEventInputType.h"
#include "core/input/PointerEventManager.h"
+#include "core/input/ScrollManager.h"
#include "core/layout/HitTestRequest.h"
#include "core/page/DragActions.h"
#include "core/page/EventWithHitTestResults.h"
@@ -47,14 +48,11 @@
#include "wtf/HashMap.h"
#include "wtf/HashTraits.h"
#include "wtf/RefPtr.h"
-#include <deque>
namespace blink {
-class AutoscrollController;
class DataTransfer;
class PaintLayer;
-class PaintLayerScrollableArea;
class Document;
class DragState;
class Element;
@@ -79,7 +77,6 @@ class PlatformTouchEvent;
class PlatformWheelEvent;
class ScrollableArea;
class Scrollbar;
-class ScrollState;
class SelectionController;
class TextEvent;
class WheelEvent;
@@ -104,6 +101,11 @@ public:
void startPanScrolling(LayoutObject*);
#endif
+ // TODO(nzolghadr): Some of the APIs in this class only forward the action
+ // to the corresponding Manager class. We need to investigate whether it is
+ // better to expose the manager instance itself later or can the access to
+ // those APIs be more limited or removed.
+
void stopAutoscroll();
void dispatchFakeMouseMoveEventSoon();
@@ -235,9 +237,6 @@ private:
WebInputEventResult handleGestureTap(const GestureEventWithHitTestResults&);
WebInputEventResult handleGestureLongPress(const GestureEventWithHitTestResults&);
WebInputEventResult handleGestureLongTap(const GestureEventWithHitTestResults&);
- WebInputEventResult handleGestureScrollUpdate(const PlatformGestureEvent&);
- WebInputEventResult handleGestureScrollBegin(const PlatformGestureEvent&);
- void clearGestureScrollState();
void updateGestureTargetNodeForMouseEvent(const GestureEventWithHitTestResults&);
@@ -257,54 +256,6 @@ private:
ScrollableArea* associatedScrollableArea(const PaintLayer*) const;
- // Performs a chaining scroll, within a *single* frame, starting from a
- // given node and optionally stopping on a given node.
- // granularity - The units that the scroll delta parameter is in.
- // delta - The delta to scroll by, in the units of the granularity param
- // (e.g. pixels, lines, pages, etc.). These are in a physical
- // direction. i.e. Positive is down and right.
- // position - Where the scroll originated from (e.g. touch location).
- // velocity - The velocity of the scroll in the case of fling gestures.
- // startNode - The node to start the scroll chaining from.
- // stopNode - On input, if non-null, the node at which we should stop
- // chaining. On output, if provided and a node was scrolled,
- // stopNode will point to that node.
- // consumed - [OUT] Whether the scroll was consumed. This is different than
- // ScrollResult.didScroll since we might not have scrolled but
- // have reached the stopNode and thus don't want to continue
- // chaining the scroll.
- ScrollResult physicalScroll(
- ScrollGranularity,
- const FloatSize& delta,
- const FloatPoint& position,
- const FloatSize& velocity,
- Node* startNode,
- Node** stopNode,
- bool* consumed);
-
- // Performs a chaining logical scroll, within a *single* frame, starting
- // from either a provided starting node or a default based on the focused or
- // most recently clicked node, falling back to the frame.
- // Returns true if the scroll was consumed.
- // direction - The logical direction to scroll in. This will be converted to
- // a physical direction for each LayoutBox we try to scroll
- // based on that box's writing mode.
- // granularity - The units that the scroll delta parameter is in.
- // startNode - Optional. If provided, start chaining from the given node.
- // If not, use the current focus or last clicked node.
- bool logicalScroll(ScrollDirection, ScrollGranularity, Node* startNode = nullptr);
-
- ScrollResult scrollBox(
- LayoutBox*,
- ScrollGranularity,
- const FloatSize& delta,
- const FloatPoint& position,
- const FloatSize& velocity,
- bool* wasRootScroller);
-
- bool isRootScroller(const Node&) const;
- void customizedScroll(const Node& startNode, ScrollState&);
-
void invalidateClick();
Node* updateMouseEventTargetNode(Node*, const PlatformMouseEvent&);
@@ -349,18 +300,10 @@ private:
void updateLastScrollbarUnderMouse(Scrollbar*, bool);
- void setFrameWasScrolledByUser();
-
bool capturesDragging() const { return m_capturesDragging; }
WebInputEventResult handleGestureShowPress();
- bool handleScrollGestureOnResizer(Node*, const PlatformGestureEvent&);
-
- WebInputEventResult passScrollGestureEventToWidget(const PlatformGestureEvent&, LayoutObject*);
-
- AutoscrollController* autoscrollController() const;
- bool panScrollInProgress() const;
void setLastKnownMousePosition(const PlatformMouseEvent&);
bool shouldTopControlsConsumeScroll(FloatSize) const;
@@ -401,8 +344,6 @@ private:
bool m_svgPan;
- Member<PaintLayerScrollableArea> m_resizeScrollableArea;
-
Member<Node> m_capturingMouseEventsNode;
bool m_eventHandlerWillResetCapturingMouseEventsNode;
@@ -420,8 +361,6 @@ private:
Member<HTMLFrameSetElement> m_frameSetBeingResized;
- LayoutSize m_offsetFromResizeCorner; // In the coords of m_resizeScrollableArea.
-
bool m_mousePositionIsUnknown;
// The last mouse movement position this frame has seen in root frame coordinates.
IntPoint m_lastKnownMousePosition;
@@ -432,15 +371,7 @@ private:
RefPtr<UserGestureToken> m_lastMouseDownUserGestureToken;
PointerEventManager m_pointerEventManager;
-
- Member<Node> m_scrollGestureHandlingNode;
- bool m_lastGestureScrollOverWidget;
- // The most recent element to scroll natively during this scroll
- // sequence. Null if no native element has scrolled this scroll
- // sequence, or if the most recent element to scroll used scroll
- // customization.
- Member<Node> m_previousGestureScrolledNode;
- Member<Scrollbar> m_scrollbarHandlingScrollGesture;
+ ScrollManager m_scrollManager;
double m_maxMouseMovedDuration;
@@ -449,15 +380,6 @@ private:
Timer<EventHandler> m_activeIntervalTimer;
double m_lastShowPressTimestamp;
Member<Element> m_lastDeferredTapElement;
-
- // Only used with the ScrollCustomization runtime enabled feature.
- std::deque<int> m_currentScrollChain;
- // True iff some of the delta has been consumed for the current
- // scroll sequence in this frame, or any child frames. Only used
- // with ScrollCustomization. If some delta has been consumed, a
- // scroll which shouldn't propagate can't cause any element to
- // scroll other than the |m_previousGestureScrolledNode|.
- bool m_deltaConsumedForScrollSequence;
};
} // namespace blink
« no previous file with comments | « third_party/WebKit/Source/core/core.gypi ('k') | third_party/WebKit/Source/core/input/EventHandler.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698