| Index: Source/core/page/EventHandler.h
|
| diff --git a/Source/core/page/EventHandler.h b/Source/core/page/EventHandler.h
|
| index ff7245f5b5761e13da6a95112552aa5202262e7b..5204ef06073a847f3cc8ca3e237b665933f15de9 100644
|
| --- a/Source/core/page/EventHandler.h
|
| +++ b/Source/core/page/EventHandler.h
|
| @@ -49,18 +49,20 @@ namespace WebCore {
|
| class AutoscrollController;
|
| class DataTransfer;
|
| class Document;
|
| +class DragState;
|
| class Element;
|
| class Event;
|
| class EventTarget;
|
| +template <typename EventType>
|
| +class EventWithHitTestResults;
|
| class FloatPoint;
|
| class FloatQuad;
|
| class FullscreenElementStack;
|
| -class LocalFrame;
|
| class HTMLFrameSetElement;
|
| class HitTestRequest;
|
| class HitTestResult;
|
| class KeyboardEvent;
|
| -class MouseEventWithHitTestResults;
|
| +class LocalFrame;
|
| class Node;
|
| class OptionalCursor;
|
| class PlatformGestureEvent;
|
| @@ -79,7 +81,8 @@ class VisibleSelection;
|
| class WheelEvent;
|
| class Widget;
|
|
|
| -class DragState;
|
| +typedef EventWithHitTestResults<PlatformGestureEvent> GestureEventWithHitTestResults;
|
| +typedef EventWithHitTestResults<PlatformMouseEvent> MouseEventWithHitTestResults;
|
|
|
| enum AppendTrailingWhitespace { ShouldAppendTrailingWhitespace, DontAppendTrailingWhitespace };
|
| enum CheckDragHysteresis { ShouldCheckDragHysteresis, DontCheckDragHysteresis };
|
| @@ -143,19 +146,32 @@ public:
|
| bool handleWheelEvent(const PlatformWheelEvent&);
|
| void defaultWheelEventHandler(Node*, WheelEvent*);
|
|
|
| + // Called on the local root frame exactly once per gesture event.
|
| bool handleGestureEvent(const PlatformGestureEvent&);
|
| +
|
| + // Hit-test the provided (non-scroll) gesture event, applying touch-adjustment and updating
|
| + // hover/active state across all frames if necessary. This should be called at most once
|
| + // per gesture event, and called on the local root frame.
|
| + // Note: This is similar to (the less clearly named) prepareMouseEvent.
|
| + // FIXME: Remove readOnly param when there is only ever a single call to this.
|
| + GestureEventWithHitTestResults targetGestureEvent(const PlatformGestureEvent&, bool readOnly = false);
|
| +
|
| + // Handle the provided non-scroll gesture event. Should be called only on the inner frame.
|
| + bool handleGestureEventInFrame(const GestureEventWithHitTestResults&);
|
| +
|
| + // Handle the provided scroll gesture event, propagating down to child frames as necessary.
|
| + bool handleGestureScrollEvent(const PlatformGestureEvent&);
|
| bool handleGestureScrollEnd(const PlatformGestureEvent&);
|
| bool isScrollbarHandlingGestures() const;
|
|
|
| - bool bestClickableNodeForTouchPoint(const IntPoint& touchCenter, const IntSize& touchRadius, IntPoint& targetPoint, Node*& targetNode);
|
| - bool bestContextMenuNodeForTouchPoint(const IntPoint& touchCenter, const IntSize& touchRadius, IntPoint& targetPoint, Node*& targetNode);
|
| + bool bestClickableNodeForHitTestResult(const HitTestResult&, IntPoint& targetPoint, Node*& targetNode);
|
| + bool bestContextMenuNodeForHitTestResult(const HitTestResult&, IntPoint& targetPoint, Node*& targetNode);
|
| + // FIXME: This doesn't appear to be used outside tests anymore, what path are we using now and is it tested?
|
| bool bestZoomableAreaForTouchPoint(const IntPoint& touchCenter, const IntSize& touchRadius, IntRect& targetArea, Node*& targetNode);
|
|
|
| - void adjustGesturePosition(const PlatformGestureEvent&, IntPoint& adjustedPoint);
|
| -
|
| bool sendContextMenuEvent(const PlatformMouseEvent&);
|
| bool sendContextMenuEventForKey();
|
| - bool sendContextMenuEventForGesture(const PlatformGestureEvent&);
|
| + bool sendContextMenuEventForGesture(const GestureEventWithHitTestResults&);
|
|
|
| void setMouseDownMayStartAutoscroll() { m_mouseDownMayStartAutoscroll = true; }
|
|
|
| @@ -204,10 +220,11 @@ private:
|
|
|
| bool handlePasteGlobalSelection(const PlatformMouseEvent&);
|
|
|
| - bool handleGestureTap(const PlatformGestureEvent&, const IntPoint& adjustedPoint);
|
| - bool handleGestureLongPress(const PlatformGestureEvent&, const IntPoint& adjustedPoint);
|
| - bool handleGestureLongTap(const PlatformGestureEvent&, const IntPoint& adjustedPoint);
|
| - bool handleGestureTwoFingerTap(const PlatformGestureEvent&, const IntPoint& adjustedPoint);
|
| + HitTestRequest::HitTestRequestType getHitTypeForGestureType(PlatformEvent::Type);
|
| + void applyTouchAdjustment(PlatformGestureEvent*, HitTestResult*);
|
| + bool handleGestureTap(const GestureEventWithHitTestResults&);
|
| + bool handleGestureLongPress(const GestureEventWithHitTestResults&);
|
| + bool handleGestureLongTap(const GestureEventWithHitTestResults&);
|
| bool handleGestureScrollUpdate(const PlatformGestureEvent&);
|
| bool handleGestureScrollBegin(const PlatformGestureEvent&);
|
| void clearGestureScrollNodes();
|
| @@ -299,10 +316,8 @@ private:
|
|
|
| bool handleScrollGestureOnResizer(Node*, const PlatformGestureEvent&);
|
|
|
| - bool passGestureEventToWidget(const PlatformGestureEvent&, Widget*);
|
| - bool passGestureEventToWidgetIfPossible(const PlatformGestureEvent&, RenderObject*);
|
| + bool passScrollGestureEventToWidget(const PlatformGestureEvent&, RenderObject*);
|
| bool sendScrollEventToView(const PlatformGestureEvent&, const FloatSize&);
|
| - LocalFrame* getSubFrameForGestureEvent(const IntPoint& touchAdjustedPoint, const PlatformGestureEvent&);
|
|
|
| AutoscrollController* autoscrollController() const;
|
| bool panScrollInProgress() const;
|
| @@ -377,12 +392,11 @@ private:
|
| bool m_touchPressed;
|
|
|
| RefPtrWillBeMember<Node> m_scrollGestureHandlingNode;
|
| - bool m_lastHitTestResultOverWidget;
|
| + bool m_lastGestureScrollOverWidget;
|
| RefPtrWillBeMember<Node> m_previousGestureScrolledNode;
|
| RefPtr<Scrollbar> m_scrollbarHandlingScrollGesture;
|
|
|
| double m_maxMouseMovedDuration;
|
| - PlatformEvent::Type m_baseEventType;
|
| bool m_didStartDrag;
|
|
|
| bool m_longTapShouldInvokeContextMenu;
|
|
|