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

Side by Side Diff: third_party/WebKit/Source/core/input/EventHandler.h

Issue 2350433002: Extract more of the mouse logic from EventHandler (Closed)
Patch Set: Yet another rebase because of a presubmit rule bug Created 4 years, 2 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
OLDNEW
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 22 matching lines...) Expand all
33 #include "core/input/MouseEventManager.h" 33 #include "core/input/MouseEventManager.h"
34 #include "core/input/PointerEventManager.h" 34 #include "core/input/PointerEventManager.h"
35 #include "core/input/ScrollManager.h" 35 #include "core/input/ScrollManager.h"
36 #include "core/layout/HitTestRequest.h" 36 #include "core/layout/HitTestRequest.h"
37 #include "core/page/DragActions.h" 37 #include "core/page/DragActions.h"
38 #include "core/page/EventWithHitTestResults.h" 38 #include "core/page/EventWithHitTestResults.h"
39 #include "core/style/ComputedStyleConstants.h" 39 #include "core/style/ComputedStyleConstants.h"
40 #include "platform/Cursor.h" 40 #include "platform/Cursor.h"
41 #include "platform/PlatformMouseEvent.h" 41 #include "platform/PlatformMouseEvent.h"
42 #include "platform/PlatformTouchPoint.h" 42 #include "platform/PlatformTouchPoint.h"
43 #include "platform/Timer.h"
44 #include "platform/UserGestureIndicator.h" 43 #include "platform/UserGestureIndicator.h"
45 #include "platform/geometry/LayoutPoint.h" 44 #include "platform/geometry/LayoutPoint.h"
46 #include "platform/heap/Handle.h" 45 #include "platform/heap/Handle.h"
47 #include "platform/scroll/ScrollTypes.h" 46 #include "platform/scroll/ScrollTypes.h"
48 #include "public/platform/WebInputEvent.h" 47 #include "public/platform/WebInputEvent.h"
49 #include "public/platform/WebInputEventResult.h" 48 #include "public/platform/WebInputEventResult.h"
50 #include "wtf/Forward.h" 49 #include "wtf/Forward.h"
51 #include "wtf/HashMap.h" 50 #include "wtf/HashMap.h"
52 #include "wtf/HashTraits.h" 51 #include "wtf/HashTraits.h"
53 #include "wtf/RefPtr.h" 52 #include "wtf/RefPtr.h"
54 53
55 namespace blink { 54 namespace blink {
56 55
57 class DataTransfer; 56 class DataTransfer;
58 class PaintLayer; 57 class PaintLayer;
59 class Document; 58 class Document;
60 class DragState;
61 class Element; 59 class Element;
62 class Event; 60 class Event;
63 class EventTarget; 61 class EventTarget;
64 template <typename EventType> 62 template <typename EventType>
65 class EventWithHitTestResults; 63 class EventWithHitTestResults;
66 class FloatPoint; 64 class FloatPoint;
67 class FloatQuad; 65 class FloatQuad;
68 class FrameHost; 66 class FrameHost;
69 class HTMLFrameSetElement; 67 class HTMLFrameSetElement;
70 class HitTestRequest; 68 class HitTestRequest;
71 class HitTestResult; 69 class HitTestResult;
72 class LayoutObject; 70 class LayoutObject;
73 class LocalFrame; 71 class LocalFrame;
74 class Node; 72 class Node;
75 class OptionalCursor; 73 class OptionalCursor;
76 class PlatformGestureEvent; 74 class PlatformGestureEvent;
77 class PlatformTouchEvent; 75 class PlatformTouchEvent;
78 class PlatformWheelEvent; 76 class PlatformWheelEvent;
79 class ScrollableArea; 77 class ScrollableArea;
80 class Scrollbar; 78 class Scrollbar;
81 class SelectionController; 79 class SelectionController;
82 class TextEvent; 80 class TextEvent;
83 class WheelEvent; 81 class WheelEvent;
84 class Widget; 82 class Widget;
85 83
86 enum class DragInitiator;
87
88 class CORE_EXPORT EventHandler final 84 class CORE_EXPORT EventHandler final
89 : public GarbageCollectedFinalized<EventHandler> { 85 : public GarbageCollectedFinalized<EventHandler> {
90 WTF_MAKE_NONCOPYABLE(EventHandler); 86 WTF_MAKE_NONCOPYABLE(EventHandler);
91 87
92 public: 88 public:
93 explicit EventHandler(LocalFrame*); 89 explicit EventHandler(LocalFrame*);
94 ~EventHandler();
95 DECLARE_TRACE(); 90 DECLARE_TRACE();
96 91
97 void clear(); 92 void clear();
98 void nodeWillBeRemoved(Node&); 93 void nodeWillBeRemoved(Node&);
99 94
100 void updateSelectionForMouseDrag(); 95 void updateSelectionForMouseDrag();
101 void startMiddleClickAutoscroll(LayoutObject*); 96 void startMiddleClickAutoscroll(LayoutObject*);
102 97
103 // TODO(nzolghadr): Some of the APIs in this class only forward the action 98 // TODO(nzolghadr): Some of the APIs in this class only forward the action
104 // to the corresponding Manager class. We need to investigate whether it is 99 // to the corresponding Manager class. We need to investigate whether it is
105 // better to expose the manager instance itself later or can the access to 100 // better to expose the manager instance itself later or can the access to
106 // those APIs be more limited or removed. 101 // those APIs be more limited or removed.
107 102
108 void stopAutoscroll(); 103 void stopAutoscroll();
109 104
110 void dispatchFakeMouseMoveEventSoon(); 105 void dispatchFakeMouseMoveEventSoon();
111 void dispatchFakeMouseMoveEventSoonInQuad(const FloatQuad&); 106 void dispatchFakeMouseMoveEventSoonInQuad(const FloatQuad&);
112 107
113 HitTestResult hitTestResultAtPoint( 108 HitTestResult hitTestResultAtPoint(
114 const LayoutPoint&, 109 const LayoutPoint&,
115 HitTestRequest::HitTestRequestType hitType = HitTestRequest::ReadOnly | 110 HitTestRequest::HitTestRequestType hitType = HitTestRequest::ReadOnly |
116 HitTestRequest::Active, 111 HitTestRequest::Active,
117 const LayoutSize& padding = LayoutSize()); 112 const LayoutSize& padding = LayoutSize());
118 113
119 bool mousePressed() const { return m_mousePressed; } 114 bool mousePressed() const { return m_mouseEventManager->mousePressed(); }
120 115
121 void setCapturingMouseEventsNode( 116 void setCapturingMouseEventsNode(
122 Node*); // A caller is responsible for resetting capturing node to 0. 117 Node*); // A caller is responsible for resetting capturing node to 0.
123 118
124 WebInputEventResult updateDragAndDrop(const PlatformMouseEvent&, 119 WebInputEventResult updateDragAndDrop(const PlatformMouseEvent&,
125 DataTransfer*); 120 DataTransfer*);
126 void cancelDragAndDrop(const PlatformMouseEvent&, DataTransfer*); 121 void cancelDragAndDrop(const PlatformMouseEvent&, DataTransfer*);
127 WebInputEventResult performDragAndDrop(const PlatformMouseEvent&, 122 WebInputEventResult performDragAndDrop(const PlatformMouseEvent&,
128 DataTransfer*); 123 DataTransfer*);
129 void updateDragStateAfterEditDragIfNeeded(Element* rootEditableElement); 124 void updateDragStateAfterEditDragIfNeeded(Element* rootEditableElement);
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
201 // Returns whether pointerId is active or not 196 // Returns whether pointerId is active or not
202 bool isPointerEventActive(int); 197 bool isPointerEventActive(int);
203 198
204 void setPointerCapture(int, EventTarget*); 199 void setPointerCapture(int, EventTarget*);
205 void releasePointerCapture(int, EventTarget*); 200 void releasePointerCapture(int, EventTarget*);
206 bool hasPointerCapture(int, const EventTarget*) const; 201 bool hasPointerCapture(int, const EventTarget*) const;
207 bool hasProcessedPointerCapture(int, const EventTarget*) const; 202 bool hasProcessedPointerCapture(int, const EventTarget*) const;
208 203
209 void elementRemoved(EventTarget*); 204 void elementRemoved(EventTarget*);
210 205
211 void setMouseDownMayStartAutoscroll() { 206 void setMouseDownMayStartAutoscroll();
212 m_mouseDownMayStartAutoscroll = true;
213 }
214 207
215 bool handleAccessKey(const WebKeyboardEvent&); 208 bool handleAccessKey(const WebKeyboardEvent&);
216 WebInputEventResult keyEvent(const WebKeyboardEvent&); 209 WebInputEventResult keyEvent(const WebKeyboardEvent&);
217 void defaultKeyboardEventHandler(KeyboardEvent*); 210 void defaultKeyboardEventHandler(KeyboardEvent*);
218 211
219 bool handleTextInputEvent(const String& text, 212 bool handleTextInputEvent(const String& text,
220 Event* underlyingEvent = nullptr, 213 Event* underlyingEvent = nullptr,
221 TextEventInputType = TextEventInputKeyboard); 214 TextEventInputType = TextEventInputKeyboard);
222 void defaultTextInputEventHandler(TextEvent*); 215 void defaultTextInputEventHandler(TextEvent*);
223 216
224 void dragSourceEndedAt(const PlatformMouseEvent&, DragOperation); 217 void dragSourceEndedAt(const PlatformMouseEvent&, DragOperation);
225 218
226 void focusDocumentView();
227
228 void capsLockStateMayHaveChanged(); // Only called by FrameSelection 219 void capsLockStateMayHaveChanged(); // Only called by FrameSelection
229 220
230 WebInputEventResult handleTouchEvent(const PlatformTouchEvent&); 221 WebInputEventResult handleTouchEvent(const PlatformTouchEvent&);
231 222
232 bool useHandCursor(Node*, bool isOverLink); 223 bool useHandCursor(Node*, bool isOverLink);
233 224
234 void notifyElementActivated(); 225 void notifyElementActivated();
235 226
236 PassRefPtr<UserGestureToken> takeLastMouseDownGestureToken() { 227 PassRefPtr<UserGestureToken> takeLastMouseDownGestureToken() {
237 return m_lastMouseDownUserGestureToken.release(); 228 return m_lastMouseDownUserGestureToken.release();
(...skipping 14 matching lines...) Expand all
252 // a physical direction for each LayoutBox we try to scroll 243 // a physical direction for each LayoutBox we try to scroll
253 // based on that box's writing mode. 244 // based on that box's writing mode.
254 // granularity - The units that the scroll delta parameter is in. 245 // granularity - The units that the scroll delta parameter is in.
255 // startNode - Optional. If provided, start chaining from the given node. 246 // startNode - Optional. If provided, start chaining from the given node.
256 // If not, use the current focus or last clicked node. 247 // If not, use the current focus or last clicked node.
257 bool logicalScroll(ScrollDirection, 248 bool logicalScroll(ScrollDirection,
258 ScrollGranularity, 249 ScrollGranularity,
259 Node* startNode = nullptr); 250 Node* startNode = nullptr);
260 251
261 private: 252 private:
262 static DragState& dragState();
263
264 DataTransfer* createDraggingDataTransfer() const;
265 253
266 WebInputEventResult handleMouseMoveOrLeaveEvent( 254 WebInputEventResult handleMouseMoveOrLeaveEvent(
267 const PlatformMouseEvent&, 255 const PlatformMouseEvent&,
268 HitTestResult* hoveredNode = nullptr, 256 HitTestResult* hoveredNode = nullptr,
269 bool onlyUpdateScrollbars = false, 257 bool onlyUpdateScrollbars = false,
270 bool forceLeave = false); 258 bool forceLeave = false);
271 WebInputEventResult handleMousePressEvent(
272 const MouseEventWithHitTestResults&);
273 WebInputEventResult handleMouseFocus(
274 const HitTestResult&,
275 InputDeviceCapabilities* sourceCapabilities);
276 WebInputEventResult handleMouseDraggedEvent(
277 const MouseEventWithHitTestResults&);
278 WebInputEventResult handleMouseReleaseEvent(
279 const MouseEventWithHitTestResults&);
280 259
281 HitTestRequest::HitTestRequestType getHitTypeForGestureType( 260 HitTestRequest::HitTestRequestType getHitTypeForGestureType(
282 PlatformEvent::EventType); 261 PlatformEvent::EventType);
283 void applyTouchAdjustment(PlatformGestureEvent*, HitTestResult*); 262 void applyTouchAdjustment(PlatformGestureEvent*, HitTestResult*);
284 WebInputEventResult handleGestureTapDown( 263 WebInputEventResult handleGestureTapDown(
285 const GestureEventWithHitTestResults&); 264 const GestureEventWithHitTestResults&);
286 WebInputEventResult handleGestureTap(const GestureEventWithHitTestResults&); 265 WebInputEventResult handleGestureTap(const GestureEventWithHitTestResults&);
287 WebInputEventResult handleGestureLongPress( 266 WebInputEventResult handleGestureLongPress(
288 const GestureEventWithHitTestResults&); 267 const GestureEventWithHitTestResults&);
289 WebInputEventResult handleGestureLongTap( 268 WebInputEventResult handleGestureLongTap(
290 const GestureEventWithHitTestResults&); 269 const GestureEventWithHitTestResults&);
291 270
292 void updateGestureTargetNodeForMouseEvent( 271 void updateGestureTargetNodeForMouseEvent(
293 const GestureEventWithHitTestResults&); 272 const GestureEventWithHitTestResults&);
294 273
295 bool shouldApplyTouchAdjustment(const PlatformGestureEvent&) const; 274 bool shouldApplyTouchAdjustment(const PlatformGestureEvent&) const;
296 275
297 OptionalCursor selectCursor(const HitTestResult&); 276 OptionalCursor selectCursor(const HitTestResult&);
298 OptionalCursor selectAutoCursor(const HitTestResult&, 277 OptionalCursor selectAutoCursor(const HitTestResult&,
299 Node*, 278 Node*,
300 const Cursor& iBeam); 279 const Cursor& iBeam);
301 280
302 void hoverTimerFired(TimerBase*); 281 void hoverTimerFired(TimerBase*);
303 void cursorUpdateTimerFired(TimerBase*); 282 void cursorUpdateTimerFired(TimerBase*);
304 void activeIntervalTimerFired(TimerBase*); 283 void activeIntervalTimerFired(TimerBase*);
305 284
306 void fakeMouseMoveEventTimerFired(TimerBase*);
307 void cancelFakeMouseMoveEvent();
308 bool isCursorVisible() const;
309 void updateCursor(); 285 void updateCursor();
310 286
311 ScrollableArea* associatedScrollableArea(const PaintLayer*) const; 287 ScrollableArea* associatedScrollableArea(const PaintLayer*) const;
312 288
313 void invalidateClick(); 289 Node* updateMouseEventTargetNode(Node*);
314
315 Node* updateMouseEventTargetNode(Node*, const PlatformMouseEvent&);
316 void updateMouseEventTargetNodeAndSendEvents(
317 Node*,
318 const PlatformMouseEvent&,
319 bool isFrameBoundaryTransition = false);
320
321 MouseEventWithHitTestResults prepareMouseEvent(const HitTestRequest&,
322 const PlatformMouseEvent&);
323
324 WebInputEventResult dispatchMouseEvent(const AtomicString& eventType,
325 Node* target,
326 int clickCount,
327 const PlatformMouseEvent&);
328 290
329 // Dispatches ME after corresponding PE provided the PE has not been canceled. The eventType arg 291 // Dispatches ME after corresponding PE provided the PE has not been canceled. The eventType arg
330 // must be a mouse event that can be gated though a preventDefaulted pointerdo wn (i.e., one of 292 // must be a mouse event that can be gated though a preventDefaulted pointerdo wn (i.e., one of
331 // {mousedown, mousemove, mouseup}). 293 // {mousedown, mousemove, mouseup}).
332 // TODO(mustaq): Can we avoid the clickCount param, instead use PlatformMouseE vent's count? 294 // TODO(mustaq): Can we avoid the clickCount param, instead use PlatformMouseE vent's count?
333 // Same applied to dispatchMouseEvent() above. 295 // Same applied to dispatchMouseEvent() above.
334 WebInputEventResult updatePointerTargetAndDispatchEvents( 296 WebInputEventResult updatePointerTargetAndDispatchEvents(
335 const AtomicString& mouseEventType, 297 const AtomicString& mouseEventType,
336 Node* target, 298 Node* target,
337 int clickCount,
338 const PlatformMouseEvent&); 299 const PlatformMouseEvent&);
339 300
340 WebInputEventResult dispatchDragEvent(const AtomicString& eventType,
341 Node* target,
342 const PlatformMouseEvent&,
343 DataTransfer*);
344
345 void clearDragDataTransfer();
346
347 bool handleDrag(const MouseEventWithHitTestResults&, DragInitiator);
348 bool tryStartDrag(const MouseEventWithHitTestResults&);
349
350 // Clears drag target and related states. It is called when drag is done or ca nceled. 301 // Clears drag target and related states. It is called when drag is done or ca nceled.
351 void clearDragState(); 302 void clearDragState();
352 303
353 // Resets the state that indicates the next events could cause a drag. It is c alled when
354 // we realize the next events should not cause drag based on the drag heuristi cs.
355 void clearDragHeuristicState();
356
357 WebInputEventResult dispatchDragSrcEvent(const AtomicString& eventType,
358 const PlatformMouseEvent&);
359
360 bool dragHysteresisExceeded(const IntPoint&) const;
361
362 WebInputEventResult passMousePressEventToSubframe( 304 WebInputEventResult passMousePressEventToSubframe(
363 MouseEventWithHitTestResults&, 305 MouseEventWithHitTestResults&,
364 LocalFrame* subframe); 306 LocalFrame* subframe);
365 WebInputEventResult passMouseMoveEventToSubframe( 307 WebInputEventResult passMouseMoveEventToSubframe(
366 MouseEventWithHitTestResults&, 308 MouseEventWithHitTestResults&,
367 LocalFrame* subframe, 309 LocalFrame* subframe,
368 HitTestResult* hoveredNode = nullptr); 310 HitTestResult* hoveredNode = nullptr);
369 WebInputEventResult passMouseReleaseEventToSubframe( 311 WebInputEventResult passMouseReleaseEventToSubframe(
370 MouseEventWithHitTestResults&, 312 MouseEventWithHitTestResults&,
371 LocalFrame* subframe); 313 LocalFrame* subframe);
372 314
373 bool passMousePressEventToScrollbar(MouseEventWithHitTestResults&); 315 bool passMousePressEventToScrollbar(MouseEventWithHitTestResults&);
374 316
375 void defaultSpaceEventHandler(KeyboardEvent*); 317 void defaultSpaceEventHandler(KeyboardEvent*);
376 void defaultBackspaceEventHandler(KeyboardEvent*); 318 void defaultBackspaceEventHandler(KeyboardEvent*);
377 void defaultTabEventHandler(KeyboardEvent*); 319 void defaultTabEventHandler(KeyboardEvent*);
378 void defaultEscapeEventHandler(KeyboardEvent*); 320 void defaultEscapeEventHandler(KeyboardEvent*);
379 void defaultArrowEventHandler(WebFocusType, KeyboardEvent*); 321 void defaultArrowEventHandler(WebFocusType, KeyboardEvent*);
380 322
381 void updateLastScrollbarUnderMouse(Scrollbar*, bool); 323 void updateLastScrollbarUnderMouse(Scrollbar*, bool);
382 324
383 bool capturesDragging() const { return m_capturesDragging; }
384
385 WebInputEventResult handleGestureShowPress(); 325 WebInputEventResult handleGestureShowPress();
386 326
387 void setLastKnownMousePosition(const PlatformMouseEvent&);
388
389 void setClickNode(Node*);
390 bool handleDragDropIfPossible(const GestureEventWithHitTestResults&);
391 static ContainerNode* parentForClickEvent(const Node&);
392
393 bool shouldTopControlsConsumeScroll(FloatSize) const; 327 bool shouldTopControlsConsumeScroll(FloatSize) const;
394 328
395 // If the given element is a shadow host and its root has delegatesFocus=false flag,
396 // slide focus to its inner element. Returns true if the resulting focus is di fferent from
397 // the given element.
398 bool slideFocusOnShadowHostIfNecessary(const Element&);
399
400 FrameHost* frameHost() const; 329 FrameHost* frameHost() const;
401 330
402 // NOTE: If adding a new field to this class please ensure that it is 331 // NOTE: If adding a new field to this class please ensure that it is
403 // cleared in |EventHandler::clear()|. 332 // cleared in |EventHandler::clear()|.
404 333
405 const Member<LocalFrame> m_frame; 334 const Member<LocalFrame> m_frame;
406 335
407 // Current button-press state for mouse/mouse-like-stylus.
408 // TODO(crbug.com/563676): Buggy for chorded buttons.
409 bool m_mousePressed;
410
411 bool m_capturesDragging;
412 Member<Node> m_mousePressNode;
413
414 bool m_mouseDownMayStartDrag;
415 const Member<SelectionController> m_selectionController; 336 const Member<SelectionController> m_selectionController;
416 337
417 LayoutPoint m_dragStartPos;
418
419 Timer<EventHandler> m_hoverTimer; 338 Timer<EventHandler> m_hoverTimer;
420 339
421 // TODO(rbyers): Mouse cursor update is page-wide, not per-frame. Page-wide s tate 340 // TODO(rbyers): Mouse cursor update is page-wide, not per-frame. Page-wide s tate
422 // should move out of EventHandler to a new PageEventHandler class. crbug.com/ 449649 341 // should move out of EventHandler to a new PageEventHandler class. crbug.com/ 449649
423 Timer<EventHandler> m_cursorUpdateTimer; 342 Timer<EventHandler> m_cursorUpdateTimer;
424 343
425 bool m_mouseDownMayStartAutoscroll;
426
427 Timer<EventHandler> m_fakeMouseMoveEventTimer;
428
429 bool m_svgPan;
430
431 Member<Node> m_capturingMouseEventsNode; 344 Member<Node> m_capturingMouseEventsNode;
432 bool m_eventHandlerWillResetCapturingMouseEventsNode; 345 bool m_eventHandlerWillResetCapturingMouseEventsNode;
433 346
434 // TODO(nzolghadr): Refactor the mouse related fields to MouseEventManager.
435 // Note the difference of this and m_nodeUnderPointer in PointerEventManager
436 Member<Node> m_nodeUnderMouse;
437
438 Member<LocalFrame> m_lastMouseMoveEventSubframe; 347 Member<LocalFrame> m_lastMouseMoveEventSubframe;
439 Member<Scrollbar> m_lastScrollbarUnderMouse; 348 Member<Scrollbar> m_lastScrollbarUnderMouse;
440 349
441 int m_clickCount;
442 Member<Node> m_clickNode;
443
444 Member<Node> m_dragTarget; 350 Member<Node> m_dragTarget;
445 bool m_shouldOnlyFireDragOverEvent; 351 bool m_shouldOnlyFireDragOverEvent;
446 352
447 Member<HTMLFrameSetElement> m_frameSetBeingResized; 353 Member<HTMLFrameSetElement> m_frameSetBeingResized;
448 354
449 bool m_mousePositionIsUnknown;
450 // The last mouse movement position this frame has seen in root frame coordina tes.
451 IntPoint m_lastKnownMousePosition;
452 IntPoint m_lastKnownMouseGlobalPosition;
453 IntPoint m_mouseDownPos; // In our view's coords.
454 double m_mouseDownTimestamp;
455 PlatformMouseEvent m_mouseDown;
456 RefPtr<UserGestureToken> m_lastMouseDownUserGestureToken; 355 RefPtr<UserGestureToken> m_lastMouseDownUserGestureToken;
457 356
458 Member<ScrollManager> m_scrollManager; 357 Member<ScrollManager> m_scrollManager;
459 Member<MouseEventManager> m_mouseEventManager; 358 Member<MouseEventManager> m_mouseEventManager;
460 Member<KeyboardEventManager> m_keyboardEventManager; 359 Member<KeyboardEventManager> m_keyboardEventManager;
461 Member<PointerEventManager> m_pointerEventManager; 360 Member<PointerEventManager> m_pointerEventManager;
462 Member<GestureManager> m_gestureManager; 361 Member<GestureManager> m_gestureManager;
463 362
464 double m_maxMouseMovedDuration; 363 double m_maxMouseMovedDuration;
465 364
466 bool m_longTapShouldInvokeContextMenu; 365 bool m_longTapShouldInvokeContextMenu;
467 366
468 Timer<EventHandler> m_activeIntervalTimer; 367 Timer<EventHandler> m_activeIntervalTimer;
469 double m_lastShowPressTimestamp; 368 double m_lastShowPressTimestamp;
470 Member<Element> m_lastDeferredTapElement; 369 Member<Element> m_lastDeferredTapElement;
471 370
472 // Set on GestureTapDown if the |pointerdown| event corresponding to the 371 // Set on GestureTapDown if the |pointerdown| event corresponding to the
473 // triggering |touchstart| event was canceled. This suppresses mouse event 372 // triggering |touchstart| event was canceled. This suppresses mouse event
474 // firing for the current gesture sequence (i.e. until next GestureTapDown). 373 // firing for the current gesture sequence (i.e. until next GestureTapDown).
475 bool m_suppressMouseEventsFromGestures; 374 bool m_suppressMouseEventsFromGestures;
476 375
477 // TODO(nzolghadr): Temporary until further refactoring
478 friend GestureManager;
479 }; 376 };
480 377
481 } // namespace blink 378 } // namespace blink
482 379
483 #endif // EventHandler_h 380 #endif // EventHandler_h
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/dom/Document.cpp ('k') | third_party/WebKit/Source/core/input/EventHandler.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698