| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2006, 2007, 2009, 2010, 2011 Apple Inc. All rights reserved. | 2 * Copyright (C) 2006, 2007, 2009, 2010, 2011 Apple Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
| 6 * are met: | 6 * are met: |
| 7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
| 8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
| 9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
| 10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
| (...skipping 14 matching lines...) Expand all Loading... |
| 25 | 25 |
| 26 #ifndef SKY_ENGINE_CORE_PAGE_EVENTHANDLER_H_ | 26 #ifndef SKY_ENGINE_CORE_PAGE_EVENTHANDLER_H_ |
| 27 #define SKY_ENGINE_CORE_PAGE_EVENTHANDLER_H_ | 27 #define SKY_ENGINE_CORE_PAGE_EVENTHANDLER_H_ |
| 28 | 28 |
| 29 #include "sky/engine/core/editing/TextGranularity.h" | 29 #include "sky/engine/core/editing/TextGranularity.h" |
| 30 #include "sky/engine/core/events/TextEventInputType.h" | 30 #include "sky/engine/core/events/TextEventInputType.h" |
| 31 #include "sky/engine/core/page/FocusType.h" | 31 #include "sky/engine/core/page/FocusType.h" |
| 32 #include "sky/engine/core/rendering/HitTestRequest.h" | 32 #include "sky/engine/core/rendering/HitTestRequest.h" |
| 33 #include "sky/engine/core/rendering/style/RenderStyleConstants.h" | 33 #include "sky/engine/core/rendering/style/RenderStyleConstants.h" |
| 34 #include "sky/engine/platform/Cursor.h" | 34 #include "sky/engine/platform/Cursor.h" |
| 35 #include "sky/engine/platform/PlatformMouseEvent.h" | 35 #include "sky/engine/platform/PlatformEvent.h" |
| 36 #include "sky/engine/platform/Timer.h" | 36 #include "sky/engine/platform/Timer.h" |
| 37 #include "sky/engine/platform/geometry/LayoutPoint.h" | 37 #include "sky/engine/platform/geometry/LayoutPoint.h" |
| 38 #include "sky/engine/platform/heap/Handle.h" | 38 #include "sky/engine/platform/heap/Handle.h" |
| 39 #include "sky/engine/platform/scroll/ScrollTypes.h" | 39 #include "sky/engine/platform/scroll/ScrollTypes.h" |
| 40 #include "sky/engine/wtf/Forward.h" | 40 #include "sky/engine/wtf/Forward.h" |
| 41 #include "sky/engine/wtf/HashMap.h" | 41 #include "sky/engine/wtf/HashMap.h" |
| 42 #include "sky/engine/wtf/HashTraits.h" | 42 #include "sky/engine/wtf/HashTraits.h" |
| 43 #include "sky/engine/wtf/RefPtr.h" | 43 #include "sky/engine/wtf/RefPtr.h" |
| 44 | 44 |
| 45 namespace blink { | 45 namespace blink { |
| 46 | 46 |
| 47 class AutoscrollController; | 47 class AutoscrollController; |
| 48 class Document; | 48 class Document; |
| 49 class Element; | 49 class Element; |
| 50 class Event; | 50 class Event; |
| 51 class EventTarget; | 51 class EventTarget; |
| 52 template <typename EventType> | 52 template <typename EventType> |
| 53 class EventWithHitTestResults; | 53 class EventWithHitTestResults; |
| 54 class FloatPoint; | 54 class FloatPoint; |
| 55 class FloatQuad; | 55 class FloatQuad; |
| 56 class HitTestRequest; | 56 class HitTestRequest; |
| 57 class HitTestResult; | 57 class HitTestResult; |
| 58 class KeyboardEvent; | 58 class KeyboardEvent; |
| 59 class LocalFrame; | 59 class LocalFrame; |
| 60 class Node; | 60 class Node; |
| 61 class OptionalCursor; | 61 class OptionalCursor; |
| 62 class PlatformGestureEvent; | 62 class PlatformGestureEvent; |
| 63 class PlatformKeyboardEvent; | 63 class PlatformKeyboardEvent; |
| 64 class PlatformTouchEvent; | 64 class PlatformTouchEvent; |
| 65 class PlatformWheelEvent; | |
| 66 class RenderLayer; | 65 class RenderLayer; |
| 67 class RenderLayerScrollableArea; | 66 class RenderLayerScrollableArea; |
| 68 class RenderObject; | 67 class RenderObject; |
| 69 class ScrollableArea; | 68 class ScrollableArea; |
| 70 class Scrollbar; | 69 class Scrollbar; |
| 71 class TextEvent; | 70 class TextEvent; |
| 72 class TouchEvent; | 71 class TouchEvent; |
| 73 class VisibleSelection; | 72 class VisibleSelection; |
| 74 class WheelEvent; | |
| 75 class Widget; | 73 class Widget; |
| 76 | 74 |
| 77 typedef EventWithHitTestResults<PlatformGestureEvent> GestureEventWithHitTestRes
ults; | 75 typedef EventWithHitTestResults<PlatformGestureEvent> GestureEventWithHitTestRes
ults; |
| 78 typedef EventWithHitTestResults<PlatformMouseEvent> MouseEventWithHitTestResults
; | |
| 79 | 76 |
| 80 enum AppendTrailingWhitespace { ShouldAppendTrailingWhitespace, DontAppendTraili
ngWhitespace }; | 77 enum AppendTrailingWhitespace { ShouldAppendTrailingWhitespace, DontAppendTraili
ngWhitespace }; |
| 81 enum CheckDragHysteresis { ShouldCheckDragHysteresis, DontCheckDragHysteresis }; | 78 enum CheckDragHysteresis { ShouldCheckDragHysteresis, DontCheckDragHysteresis }; |
| 82 | 79 |
| 83 class EventHandler { | 80 class EventHandler { |
| 84 WTF_MAKE_NONCOPYABLE(EventHandler); | 81 WTF_MAKE_NONCOPYABLE(EventHandler); |
| 85 public: | 82 public: |
| 86 explicit EventHandler(LocalFrame*); | 83 explicit EventHandler(LocalFrame*); |
| 87 ~EventHandler(); | 84 ~EventHandler(); |
| 88 | 85 |
| 89 void clear(); | 86 void clear(); |
| 90 void nodeWillBeRemoved(Node&); | 87 void nodeWillBeRemoved(Node&); |
| 91 | 88 |
| 92 void updateSelectionForMouseDrag(); | 89 void updateSelectionForMouseDrag(); |
| 93 | 90 |
| 94 Node* mousePressNode() const; | 91 Node* mousePressNode() const; |
| 95 | 92 |
| 96 void stopAutoscroll(); | 93 void stopAutoscroll(); |
| 97 | 94 |
| 98 void dispatchFakeMouseMoveEventSoon(); | |
| 99 void dispatchFakeMouseMoveEventSoonInQuad(const FloatQuad&); | |
| 100 | |
| 101 HitTestResult hitTestResultAtPoint(const LayoutPoint&, | 95 HitTestResult hitTestResultAtPoint(const LayoutPoint&, |
| 102 HitTestRequest::HitTestRequestType hitType = HitTestRequest::ReadOnly |
HitTestRequest::Active, | 96 HitTestRequest::HitTestRequestType hitType = HitTestRequest::ReadOnly |
HitTestRequest::Active, |
| 103 const LayoutSize& padding = LayoutSize()); | 97 const LayoutSize& padding = LayoutSize()); |
| 104 | 98 |
| 105 bool mousePressed() const { return m_mousePressed; } | 99 bool mousePressed() const { return m_mousePressed; } |
| 106 void setMousePressed(bool pressed) { m_mousePressed = pressed; } | 100 void setMousePressed(bool pressed) { m_mousePressed = pressed; } |
| 107 | 101 |
| 108 void setCapturingMouseEventsNode(PassRefPtr<Node>); // A caller is responsib
le for resetting capturing node to 0. | |
| 109 | |
| 110 void scheduleHoverStateUpdate(); | 102 void scheduleHoverStateUpdate(); |
| 111 void scheduleCursorUpdate(); | 103 void scheduleCursorUpdate(); |
| 112 | 104 |
| 113 IntPoint lastKnownMousePosition() const; | 105 IntPoint lastKnownMousePosition() const; |
| 114 Cursor currentMouseCursor() const { return m_currentMouseCursor; } | 106 Cursor currentMouseCursor() const { return m_currentMouseCursor; } |
| 115 | 107 |
| 116 // Attempts to scroll the DOM tree. If that fails, scrolls the view. | 108 // Attempts to scroll the DOM tree. If that fails, scrolls the view. |
| 117 // If the view can't be scrolled either, recursively bubble to the parent fr
ame. | 109 // If the view can't be scrolled either, recursively bubble to the parent fr
ame. |
| 118 bool bubblingScroll(ScrollDirection, ScrollGranularity, Node* startingNode =
0); | 110 bool bubblingScroll(ScrollDirection, ScrollGranularity, Node* startingNode =
0); |
| 119 | 111 |
| 120 bool handleMouseMoveEvent(const PlatformMouseEvent&); | |
| 121 void handleMouseLeaveEvent(const PlatformMouseEvent&); | |
| 122 | |
| 123 bool handleMousePressEvent(const PlatformMouseEvent&); | |
| 124 bool handleMouseReleaseEvent(const PlatformMouseEvent&); | |
| 125 bool handleWheelEvent(const PlatformWheelEvent&); | |
| 126 void defaultWheelEventHandler(Node*, WheelEvent*); | |
| 127 | |
| 128 // Called on the local root frame exactly once per gesture event. | 112 // Called on the local root frame exactly once per gesture event. |
| 129 bool handleGestureEvent(const PlatformGestureEvent&); | 113 bool handleGestureEvent(const PlatformGestureEvent&); |
| 130 | 114 |
| 131 // Hit-test the provided (non-scroll) gesture event, applying touch-adjustme
nt and updating | 115 // Hit-test the provided (non-scroll) gesture event, applying touch-adjustme
nt and updating |
| 132 // hover/active state across all frames if necessary. This should be called
at most once | 116 // hover/active state across all frames if necessary. This should be called
at most once |
| 133 // per gesture event, and called on the local root frame. | 117 // per gesture event, and called on the local root frame. |
| 134 // Note: This is similar to (the less clearly named) prepareMouseEvent. | 118 // Note: This is similar to (the less clearly named) prepareMouseEvent. |
| 135 // FIXME: Remove readOnly param when there is only ever a single call to thi
s. | 119 // FIXME: Remove readOnly param when there is only ever a single call to thi
s. |
| 136 GestureEventWithHitTestResults targetGestureEvent(const PlatformGestureEvent
&, bool readOnly = false); | 120 GestureEventWithHitTestResults targetGestureEvent(const PlatformGestureEvent
&, bool readOnly = false); |
| 137 | 121 |
| (...skipping 20 matching lines...) Expand all Loading... |
| 158 bool handleTouchEvent(const PlatformTouchEvent&); | 142 bool handleTouchEvent(const PlatformTouchEvent&); |
| 159 | 143 |
| 160 bool useHandCursor(Node*, bool isOverLink); | 144 bool useHandCursor(Node*, bool isOverLink); |
| 161 | 145 |
| 162 void notifyElementActivated(); | 146 void notifyElementActivated(); |
| 163 | 147 |
| 164 private: | 148 private: |
| 165 bool updateSelectionForMouseDownDispatchingSelectStart(Node*, const VisibleS
election&, TextGranularity); | 149 bool updateSelectionForMouseDownDispatchingSelectStart(Node*, const VisibleS
election&, TextGranularity); |
| 166 void selectClosestWordFromHitTestResult(const HitTestResult&, AppendTrailing
Whitespace); | 150 void selectClosestWordFromHitTestResult(const HitTestResult&, AppendTrailing
Whitespace); |
| 167 void selectClosestMisspellingFromHitTestResult(const HitTestResult&, AppendT
railingWhitespace); | 151 void selectClosestMisspellingFromHitTestResult(const HitTestResult&, AppendT
railingWhitespace); |
| 168 void selectClosestWordFromMouseEvent(const MouseEventWithHitTestResults&); | |
| 169 void selectClosestMisspellingFromMouseEvent(const MouseEventWithHitTestResul
ts&); | |
| 170 void selectClosestWordOrLinkFromMouseEvent(const MouseEventWithHitTestResult
s&); | |
| 171 | |
| 172 bool handleMouseMoveOrLeaveEvent(const PlatformMouseEvent&, HitTestResult* h
overedNode = 0, bool onlyUpdateScrollbars = false); | |
| 173 bool handleMousePressEvent(const MouseEventWithHitTestResults&); | |
| 174 bool handleMousePressEventSingleClick(const MouseEventWithHitTestResults&); | |
| 175 bool handleMousePressEventDoubleClick(const MouseEventWithHitTestResults&); | |
| 176 bool handleMousePressEventTripleClick(const MouseEventWithHitTestResults&); | |
| 177 bool handleMouseFocus(const PlatformMouseEvent&); | |
| 178 bool handleMouseDraggedEvent(const MouseEventWithHitTestResults&); | |
| 179 bool handleMouseReleaseEvent(const MouseEventWithHitTestResults&); | |
| 180 | |
| 181 bool handlePasteGlobalSelection(const PlatformMouseEvent&); | |
| 182 | 152 |
| 183 HitTestRequest::HitTestRequestType getHitTypeForGestureType(PlatformEvent::T
ype); | 153 HitTestRequest::HitTestRequestType getHitTypeForGestureType(PlatformEvent::T
ype); |
| 184 | 154 |
| 185 bool handleGestureTap(const GestureEventWithHitTestResults&); | 155 bool handleGestureTap(const GestureEventWithHitTestResults&); |
| 186 bool handleGestureLongPress(const GestureEventWithHitTestResults&); | 156 bool handleGestureLongPress(const GestureEventWithHitTestResults&); |
| 187 bool handleGestureLongTap(const GestureEventWithHitTestResults&); | 157 bool handleGestureLongTap(const GestureEventWithHitTestResults&); |
| 188 bool handleGestureScrollUpdate(const PlatformGestureEvent&); | 158 bool handleGestureScrollUpdate(const PlatformGestureEvent&); |
| 189 bool handleGestureScrollBegin(const PlatformGestureEvent&); | 159 bool handleGestureScrollBegin(const PlatformGestureEvent&); |
| 190 void clearGestureScrollNodes(); | 160 void clearGestureScrollNodes(); |
| 191 | 161 |
| 192 OptionalCursor selectCursor(const HitTestResult&); | 162 OptionalCursor selectCursor(const HitTestResult&); |
| 193 OptionalCursor selectAutoCursor(const HitTestResult&, Node*, const Cursor& i
Beam); | 163 OptionalCursor selectAutoCursor(const HitTestResult&, Node*, const Cursor& i
Beam); |
| 194 | 164 |
| 195 void hoverTimerFired(Timer<EventHandler>*); | 165 void hoverTimerFired(Timer<EventHandler>*); |
| 196 void cursorUpdateTimerFired(Timer<EventHandler>*); | 166 void cursorUpdateTimerFired(Timer<EventHandler>*); |
| 197 void activeIntervalTimerFired(Timer<EventHandler>*); | 167 void activeIntervalTimerFired(Timer<EventHandler>*); |
| 198 | 168 |
| 199 bool mouseDownMayStartSelect() const { return m_mouseDownMayStartSelect; } | 169 bool mouseDownMayStartSelect() const { return m_mouseDownMayStartSelect; } |
| 200 | 170 |
| 201 void fakeMouseMoveEventTimerFired(Timer<EventHandler>*); | |
| 202 void cancelFakeMouseMoveEvent(); | |
| 203 bool isCursorVisible() const; | 171 bool isCursorVisible() const; |
| 204 void updateCursor(); | 172 void updateCursor(); |
| 205 | 173 |
| 206 bool isInsideScrollbar(const IntPoint&) const; | 174 bool isInsideScrollbar(const IntPoint&) const; |
| 207 | 175 |
| 208 ScrollableArea* associatedScrollableArea(const RenderLayer*) const; | 176 ScrollableArea* associatedScrollableArea(const RenderLayer*) const; |
| 209 | 177 |
| 210 // Scrolls the elements of the DOM tree. Returns true if a node was scrolled
. | 178 // Scrolls the elements of the DOM tree. Returns true if a node was scrolled
. |
| 211 // False if we reached the root and couldn't scroll anything. | 179 // False if we reached the root and couldn't scroll anything. |
| 212 // direction - The direction to scroll in. If this is a logicl direction, it
will be | 180 // direction - The direction to scroll in. If this is a logicl direction, it
will be |
| 213 // converted to the physical direction based on a node's writing
mode. | 181 // converted to the physical direction based on a node's writing
mode. |
| 214 // granularity - The units that the scroll delta parameter is in. | 182 // granularity - The units that the scroll delta parameter is in. |
| 215 // startNode - The node to start bubbling the scroll from. If a node can't s
croll, | 183 // startNode - The node to start bubbling the scroll from. If a node can't s
croll, |
| 216 // the scroll bubbles up to the containing block. | 184 // the scroll bubbles up to the containing block. |
| 217 // stopNode - On input, if provided and non-null, the node at which we shoul
d stop bubbling on input. | 185 // stopNode - On input, if provided and non-null, the node at which we shoul
d stop bubbling on input. |
| 218 // On output, if provided and a node was scrolled stopNode will p
oint to that node. | 186 // On output, if provided and a node was scrolled stopNode will p
oint to that node. |
| 219 // delta - The delta to scroll by, in the units of the granularity parameter
. (e.g. pixels, lines, pages, etc.) | 187 // delta - The delta to scroll by, in the units of the granularity parameter
. (e.g. pixels, lines, pages, etc.) |
| 220 // absolutePoint - For wheel scrolls - the location, in absolute coordinates
, where the event occured. | 188 // absolutePoint - For wheel scrolls - the location, in absolute coordinates
, where the event occured. |
| 221 bool scroll(ScrollDirection, ScrollGranularity, Node* startNode = 0, Node**
stopNode = 0, float delta = 1.0f, IntPoint absolutePoint = IntPoint()); | 189 bool scroll(ScrollDirection, ScrollGranularity, Node* startNode = 0, Node**
stopNode = 0, float delta = 1.0f, IntPoint absolutePoint = IntPoint()); |
| 222 | 190 |
| 223 TouchAction intersectTouchAction(const TouchAction, const TouchAction); | 191 TouchAction intersectTouchAction(const TouchAction, const TouchAction); |
| 224 TouchAction computeEffectiveTouchAction(const Node&); | 192 TouchAction computeEffectiveTouchAction(const Node&); |
| 225 | 193 |
| 226 HitTestResult hitTestResultInFrame(LocalFrame*, const LayoutPoint&, HitTestR
equest::HitTestRequestType hitType = HitTestRequest::ReadOnly | HitTestRequest::
Active); | 194 HitTestResult hitTestResultInFrame(LocalFrame*, const LayoutPoint&, HitTestR
equest::HitTestRequestType hitType = HitTestRequest::ReadOnly | HitTestRequest::
Active); |
| 227 | 195 |
| 228 void invalidateClick(); | 196 void invalidateClick(); |
| 229 | 197 |
| 230 void updateMouseEventTargetNode(Node*, const PlatformMouseEvent&, bool fireM
ouseOverOut); | |
| 231 | |
| 232 MouseEventWithHitTestResults prepareMouseEvent(const HitTestRequest&, const
PlatformMouseEvent&); | |
| 233 | |
| 234 bool dispatchMouseEvent(const AtomicString& eventType, Node* target, int cli
ckCount, const PlatformMouseEvent&, bool setUnder); | |
| 235 | |
| 236 bool dragHysteresisExceeded(const FloatPoint&) const; | 198 bool dragHysteresisExceeded(const FloatPoint&) const; |
| 237 bool dragHysteresisExceeded(const IntPoint&) const; | 199 bool dragHysteresisExceeded(const IntPoint&) const; |
| 238 | 200 |
| 239 bool passMousePressEventToScrollbar(MouseEventWithHitTestResults&); | |
| 240 | |
| 241 bool passWidgetMouseDownEventToWidget(const MouseEventWithHitTestResults&); | |
| 242 | |
| 243 bool passWheelEventToWidget(const PlatformWheelEvent&, Widget*); | |
| 244 void defaultTabEventHandler(KeyboardEvent*); | 201 void defaultTabEventHandler(KeyboardEvent*); |
| 245 | 202 |
| 246 void updateSelectionForMouseDrag(const HitTestResult&); | 203 void updateSelectionForMouseDrag(const HitTestResult&); |
| 247 | 204 |
| 248 void updateLastScrollbarUnderMouse(Scrollbar*, bool); | 205 void updateLastScrollbarUnderMouse(Scrollbar*, bool); |
| 249 | 206 |
| 250 bool capturesDragging() const { return m_capturesDragging; } | 207 bool capturesDragging() const { return m_capturesDragging; } |
| 251 | 208 |
| 252 bool handleGestureShowPress(); | 209 bool handleGestureShowPress(); |
| 253 | 210 |
| 254 bool passScrollGestureEventToWidget(const PlatformGestureEvent&, RenderObjec
t*); | 211 bool passScrollGestureEventToWidget(const PlatformGestureEvent&, RenderObjec
t*); |
| 255 bool sendScrollEventToView(const PlatformGestureEvent&, const FloatSize&); | 212 bool sendScrollEventToView(const PlatformGestureEvent&, const FloatSize&); |
| 256 | 213 |
| 257 AutoscrollController* autoscrollController() const; | 214 AutoscrollController* autoscrollController() const; |
| 258 void setLastKnownMousePosition(const PlatformMouseEvent&); | |
| 259 | 215 |
| 260 LocalFrame* const m_frame; | 216 LocalFrame* const m_frame; |
| 261 | 217 |
| 262 bool m_mousePressed; | 218 bool m_mousePressed; |
| 263 bool m_capturesDragging; | 219 bool m_capturesDragging; |
| 264 RefPtr<Node> m_mousePressNode; | 220 RefPtr<Node> m_mousePressNode; |
| 265 | 221 |
| 266 bool m_mouseDownMayStartSelect; | 222 bool m_mouseDownMayStartSelect; |
| 267 bool m_mouseDownMayStartDrag; | 223 bool m_mouseDownMayStartDrag; |
| 268 bool m_mouseDownWasSingleClickInSelection; | |
| 269 enum SelectionInitiationState { HaveNotStartedSelection, PlacedCaret, Extend
edSelection }; | 224 enum SelectionInitiationState { HaveNotStartedSelection, PlacedCaret, Extend
edSelection }; |
| 270 SelectionInitiationState m_selectionInitiationState; | 225 SelectionInitiationState m_selectionInitiationState; |
| 271 | 226 |
| 272 LayoutPoint m_dragStartPos; | 227 LayoutPoint m_dragStartPos; |
| 273 | 228 |
| 274 Timer<EventHandler> m_hoverTimer; | 229 Timer<EventHandler> m_hoverTimer; |
| 275 Timer<EventHandler> m_cursorUpdateTimer; | 230 Timer<EventHandler> m_cursorUpdateTimer; |
| 276 | 231 |
| 277 bool m_mouseDownMayStartAutoscroll; | 232 bool m_mouseDownMayStartAutoscroll; |
| 278 | 233 |
| 279 Timer<EventHandler> m_fakeMouseMoveEventTimer; | |
| 280 | |
| 281 RefPtr<Node> m_capturingMouseEventsNode; | |
| 282 bool m_eventHandlerWillResetCapturingMouseEventsNode; | |
| 283 | |
| 284 RefPtr<Node> m_nodeUnderMouse; | 234 RefPtr<Node> m_nodeUnderMouse; |
| 285 RefPtr<Node> m_lastNodeUnderMouse; | 235 RefPtr<Node> m_lastNodeUnderMouse; |
| 286 RefPtr<Scrollbar> m_lastScrollbarUnderMouse; | 236 RefPtr<Scrollbar> m_lastScrollbarUnderMouse; |
| 287 Cursor m_currentMouseCursor; | 237 Cursor m_currentMouseCursor; |
| 288 | 238 |
| 289 int m_clickCount; | 239 int m_clickCount; |
| 290 RefPtr<Node> m_clickNode; | 240 RefPtr<Node> m_clickNode; |
| 291 | 241 |
| 292 RefPtr<Node> m_dragTarget; | 242 RefPtr<Node> m_dragTarget; |
| 293 bool m_shouldOnlyFireDragOverEvent; | 243 bool m_shouldOnlyFireDragOverEvent; |
| 294 | 244 |
| 295 bool m_mousePositionIsUnknown; | 245 bool m_mousePositionIsUnknown; |
| 296 IntPoint m_lastKnownMousePosition; | 246 IntPoint m_lastKnownMousePosition; |
| 297 IntPoint m_lastKnownMouseGlobalPosition; | 247 IntPoint m_lastKnownMouseGlobalPosition; |
| 298 IntPoint m_mouseDownPos; // In our view's coords. | 248 IntPoint m_mouseDownPos; // In our view's coords. |
| 299 double m_mouseDownTimestamp; | |
| 300 PlatformMouseEvent m_mouseDown; | |
| 301 | |
| 302 RefPtr<Node> m_latchedWheelEventNode; | |
| 303 bool m_widgetIsLatched; | |
| 304 | 249 |
| 305 RefPtr<Node> m_previousWheelScrolledNode; | 250 RefPtr<Node> m_previousWheelScrolledNode; |
| 306 | 251 |
| 307 // The target of each active touch point indexed by the touch ID. | 252 // The target of each active touch point indexed by the touch ID. |
| 308 typedef HashMap<unsigned, RefPtr<EventTarget>, DefaultHash<unsigned>::Hash,
WTF::UnsignedWithZeroKeyHashTraits<unsigned> > TouchTargetMap; | 253 typedef HashMap<unsigned, RefPtr<EventTarget>, DefaultHash<unsigned>::Hash,
WTF::UnsignedWithZeroKeyHashTraits<unsigned> > TouchTargetMap; |
| 309 TouchTargetMap m_targetForTouchID; | 254 TouchTargetMap m_targetForTouchID; |
| 310 | 255 |
| 311 // If set, the document of the active touch sequence. Unset if no touch sequ
ence active. | 256 // If set, the document of the active touch sequence. Unset if no touch sequ
ence active. |
| 312 RefPtr<Document> m_touchSequenceDocument; | 257 RefPtr<Document> m_touchSequenceDocument; |
| 313 | 258 |
| 314 bool m_touchPressed; | 259 bool m_touchPressed; |
| 315 | 260 |
| 316 RefPtr<Node> m_scrollGestureHandlingNode; | 261 RefPtr<Node> m_scrollGestureHandlingNode; |
| 317 bool m_lastGestureScrollOverWidget; | 262 bool m_lastGestureScrollOverWidget; |
| 318 RefPtr<Node> m_previousGestureScrolledNode; | 263 RefPtr<Node> m_previousGestureScrolledNode; |
| 319 RefPtr<Scrollbar> m_scrollbarHandlingScrollGesture; | 264 RefPtr<Scrollbar> m_scrollbarHandlingScrollGesture; |
| 320 | 265 |
| 321 double m_maxMouseMovedDuration; | 266 double m_maxMouseMovedDuration; |
| 322 bool m_didStartDrag; | 267 bool m_didStartDrag; |
| 323 | 268 |
| 324 Timer<EventHandler> m_activeIntervalTimer; | 269 Timer<EventHandler> m_activeIntervalTimer; |
| 325 double m_lastShowPressTimestamp; | 270 double m_lastShowPressTimestamp; |
| 326 RefPtr<Element> m_lastDeferredTapElement; | 271 RefPtr<Element> m_lastDeferredTapElement; |
| 327 }; | 272 }; |
| 328 | 273 |
| 329 } // namespace blink | 274 } // namespace blink |
| 330 | 275 |
| 331 #endif // SKY_ENGINE_CORE_PAGE_EVENTHANDLER_H_ | 276 #endif // SKY_ENGINE_CORE_PAGE_EVENTHANDLER_H_ |
| OLD | NEW |