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

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

Issue 2650403006: Remove PlatformMouseEvent and use WebMouseEvent instead (Closed)
Patch Set: Created 3 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
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 20 matching lines...) Expand all
31 #include "core/input/GestureManager.h" 31 #include "core/input/GestureManager.h"
32 #include "core/input/KeyboardEventManager.h" 32 #include "core/input/KeyboardEventManager.h"
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"
42 #include "platform/UserGestureIndicator.h" 41 #include "platform/UserGestureIndicator.h"
43 #include "platform/geometry/LayoutPoint.h" 42 #include "platform/geometry/LayoutPoint.h"
44 #include "platform/heap/Handle.h" 43 #include "platform/heap/Handle.h"
45 #include "platform/scroll/ScrollTypes.h" 44 #include "platform/scroll/ScrollTypes.h"
46 #include "public/platform/WebInputEvent.h" 45 #include "public/platform/WebInputEvent.h"
47 #include "public/platform/WebInputEventResult.h" 46 #include "public/platform/WebInputEventResult.h"
48 #include "wtf/Forward.h" 47 #include "wtf/Forward.h"
49 #include "wtf/HashMap.h" 48 #include "wtf/HashMap.h"
50 #include "wtf/HashTraits.h" 49 #include "wtf/HashTraits.h"
51 #include "wtf/RefPtr.h" 50 #include "wtf/RefPtr.h"
(...skipping 14 matching lines...) Expand all
66 class HitTestResult; 65 class HitTestResult;
67 class LayoutObject; 66 class LayoutObject;
68 class LocalFrame; 67 class LocalFrame;
69 class Node; 68 class Node;
70 class OptionalCursor; 69 class OptionalCursor;
71 class ScrollableArea; 70 class ScrollableArea;
72 class Scrollbar; 71 class Scrollbar;
73 class SelectionController; 72 class SelectionController;
74 class TextEvent; 73 class TextEvent;
75 class WebGestureEvent; 74 class WebGestureEvent;
75 class WebMouseEvent;
76 class WebMouseWheelEvent; 76 class WebMouseWheelEvent;
77 class WebTouchEvent; 77 class WebTouchEvent;
78 78
79 class CORE_EXPORT EventHandler final 79 class CORE_EXPORT EventHandler final
80 : public GarbageCollectedFinalized<EventHandler> { 80 : public GarbageCollectedFinalized<EventHandler> {
81 WTF_MAKE_NONCOPYABLE(EventHandler); 81 WTF_MAKE_NONCOPYABLE(EventHandler);
82 82
83 public: 83 public:
84 explicit EventHandler(LocalFrame&); 84 explicit EventHandler(LocalFrame&);
85 DECLARE_TRACE(); 85 DECLARE_TRACE();
(...skipping 20 matching lines...) Expand all
106 const LayoutSize& padding = LayoutSize()); 106 const LayoutSize& padding = LayoutSize());
107 107
108 bool mousePressed() const { return m_mouseEventManager->mousePressed(); } 108 bool mousePressed() const { return m_mouseEventManager->mousePressed(); }
109 bool isMousePositionUnknown() const { 109 bool isMousePositionUnknown() const {
110 return m_mouseEventManager->isMousePositionUnknown(); 110 return m_mouseEventManager->isMousePositionUnknown();
111 } 111 }
112 void clearMouseEventManager() const { m_mouseEventManager->clear(); } 112 void clearMouseEventManager() const { m_mouseEventManager->clear(); }
113 void setCapturingMouseEventsNode( 113 void setCapturingMouseEventsNode(
114 Node*); // A caller is responsible for resetting capturing node to 0. 114 Node*); // A caller is responsible for resetting capturing node to 0.
115 115
116 WebInputEventResult updateDragAndDrop(const PlatformMouseEvent&, 116 WebInputEventResult updateDragAndDrop(const WebMouseEvent&, DataTransfer*);
117 DataTransfer*); 117 void cancelDragAndDrop(const WebMouseEvent&, DataTransfer*);
118 void cancelDragAndDrop(const PlatformMouseEvent&, DataTransfer*); 118 WebInputEventResult performDragAndDrop(const WebMouseEvent&, DataTransfer*);
119 WebInputEventResult performDragAndDrop(const PlatformMouseEvent&,
120 DataTransfer*);
121 void updateDragStateAfterEditDragIfNeeded(Element* rootEditableElement); 119 void updateDragStateAfterEditDragIfNeeded(Element* rootEditableElement);
122 120
123 void scheduleHoverStateUpdate(); 121 void scheduleHoverStateUpdate();
124 void scheduleCursorUpdate(); 122 void scheduleCursorUpdate();
125 123
126 // Return whether a mouse cursor update is currently pending. Used for 124 // Return whether a mouse cursor update is currently pending. Used for
127 // testing. 125 // testing.
128 bool cursorUpdatePending(); 126 bool cursorUpdatePending();
129 127
130 void setResizingFrameSet(HTMLFrameSetElement*); 128 void setResizingFrameSet(HTMLFrameSetElement*);
131 129
132 void resizeScrollableAreaDestroyed(); 130 void resizeScrollableAreaDestroyed();
133 131
134 IntPoint lastKnownMousePosition() const; 132 IntPoint lastKnownMousePosition() const;
135 133
136 IntPoint dragDataTransferLocationForTesting(); 134 IntPoint dragDataTransferLocationForTesting();
137 135
138 // Performs a logical scroll that chains, crossing frames, starting from 136 // Performs a logical scroll that chains, crossing frames, starting from
139 // the given node or a reasonable default (focus/last clicked). 137 // the given node or a reasonable default (focus/last clicked).
140 bool bubblingScroll(ScrollDirection, 138 bool bubblingScroll(ScrollDirection,
141 ScrollGranularity, 139 ScrollGranularity,
142 Node* startingNode = nullptr); 140 Node* startingNode = nullptr);
143 141
144 WebInputEventResult handleMouseMoveEvent( 142 WebInputEventResult handleMouseMoveEvent(
145 const PlatformMouseEvent&, 143 const WebMouseEvent&,
146 const Vector<PlatformMouseEvent>& coalescedEvents); 144 const Vector<WebMouseEvent>& coalescedEvents);
147 void handleMouseLeaveEvent(const PlatformMouseEvent&); 145 void handleMouseLeaveEvent(const WebMouseEvent&);
148 146
149 WebInputEventResult handleMousePressEvent(const PlatformMouseEvent&); 147 WebInputEventResult handleMousePressEvent(const WebMouseEvent&);
150 WebInputEventResult handleMouseReleaseEvent(const PlatformMouseEvent&); 148 WebInputEventResult handleMouseReleaseEvent(const WebMouseEvent&);
151 WebInputEventResult handleWheelEvent(const WebMouseWheelEvent&); 149 WebInputEventResult handleWheelEvent(const WebMouseWheelEvent&);
152 150
153 // Called on the local root frame exactly once per gesture event. 151 // Called on the local root frame exactly once per gesture event.
154 WebInputEventResult handleGestureEvent(const WebGestureEvent&); 152 WebInputEventResult handleGestureEvent(const WebGestureEvent&);
155 WebInputEventResult handleGestureEvent(const GestureEventWithHitTestResults&); 153 WebInputEventResult handleGestureEvent(const GestureEventWithHitTestResults&);
156 154
157 // Clear the old hover/active state within frames before moving the hover 155 // Clear the old hover/active state within frames before moving the hover
158 // state to the another frame 156 // state to the another frame
159 void updateGestureHoverActiveState(const HitTestRequest&, Element*); 157 void updateGestureHoverActiveState(const HitTestRequest&, Element*);
160 158
(...skipping 25 matching lines...) Expand all
186 bool bestContextMenuNodeForHitTestResult(const HitTestResult&, 184 bool bestContextMenuNodeForHitTestResult(const HitTestResult&,
187 IntPoint& targetPoint, 185 IntPoint& targetPoint,
188 Node*& targetNode); 186 Node*& targetNode);
189 // FIXME: This doesn't appear to be used outside tests anymore, what path are 187 // FIXME: This doesn't appear to be used outside tests anymore, what path are
190 // we using now and is it tested? 188 // we using now and is it tested?
191 bool bestZoomableAreaForTouchPoint(const IntPoint& touchCenter, 189 bool bestZoomableAreaForTouchPoint(const IntPoint& touchCenter,
192 const IntSize& touchRadius, 190 const IntSize& touchRadius,
193 IntRect& targetArea, 191 IntRect& targetArea,
194 Node*& targetNode); 192 Node*& targetNode);
195 193
196 WebInputEventResult sendContextMenuEvent(const PlatformMouseEvent&, 194 WebInputEventResult sendContextMenuEvent(const WebMouseEvent&,
197 Node* overrideTargetNode = nullptr); 195 Node* overrideTargetNode = nullptr);
198 WebInputEventResult sendContextMenuEventForKey( 196 WebInputEventResult sendContextMenuEventForKey(
199 Element* overrideTargetElement = nullptr); 197 Element* overrideTargetElement = nullptr);
200 198
201 // Returns whether pointerId is active or not 199 // Returns whether pointerId is active or not
202 bool isPointerEventActive(int); 200 bool isPointerEventActive(int);
203 201
204 void setPointerCapture(int, EventTarget*); 202 void setPointerCapture(int, EventTarget*);
205 void releasePointerCapture(int, EventTarget*); 203 void releasePointerCapture(int, EventTarget*);
206 bool hasPointerCapture(int, const EventTarget*) const; 204 bool hasPointerCapture(int, const EventTarget*) const;
207 bool hasProcessedPointerCapture(int, const EventTarget*) const; 205 bool hasProcessedPointerCapture(int, const EventTarget*) const;
208 206
209 void elementRemoved(EventTarget*); 207 void elementRemoved(EventTarget*);
210 208
211 void setMouseDownMayStartAutoscroll(); 209 void setMouseDownMayStartAutoscroll();
212 210
213 bool handleAccessKey(const WebKeyboardEvent&); 211 bool handleAccessKey(const WebKeyboardEvent&);
214 WebInputEventResult keyEvent(const WebKeyboardEvent&); 212 WebInputEventResult keyEvent(const WebKeyboardEvent&);
215 void defaultKeyboardEventHandler(KeyboardEvent*); 213 void defaultKeyboardEventHandler(KeyboardEvent*);
216 214
217 bool handleTextInputEvent(const String& text, 215 bool handleTextInputEvent(const String& text,
218 Event* underlyingEvent = nullptr, 216 Event* underlyingEvent = nullptr,
219 TextEventInputType = TextEventInputKeyboard); 217 TextEventInputType = TextEventInputKeyboard);
220 void defaultTextInputEventHandler(TextEvent*); 218 void defaultTextInputEventHandler(TextEvent*);
221 219
222 void dragSourceEndedAt(const PlatformMouseEvent&, DragOperation); 220 void dragSourceEndedAt(const WebMouseEvent&, DragOperation);
223 221
224 void capsLockStateMayHaveChanged(); // Only called by FrameSelection 222 void capsLockStateMayHaveChanged(); // Only called by FrameSelection
225 223
226 WebInputEventResult handleTouchEvent( 224 WebInputEventResult handleTouchEvent(
227 const WebTouchEvent&, 225 const WebTouchEvent&,
228 const Vector<WebTouchEvent>& coalescedEvents); 226 const Vector<WebTouchEvent>& coalescedEvents);
229 227
230 bool useHandCursor(Node*, bool isOverLink); 228 bool useHandCursor(Node*, bool isOverLink);
231 229
232 void notifyElementActivated(); 230 void notifyElementActivated();
(...skipping 20 matching lines...) Expand all
253 // startNode - Optional. If provided, start chaining from the given node. 251 // startNode - Optional. If provided, start chaining from the given node.
254 // If not, use the current focus or last clicked node. 252 // If not, use the current focus or last clicked node.
255 bool logicalScroll(ScrollDirection, 253 bool logicalScroll(ScrollDirection,
256 ScrollGranularity, 254 ScrollGranularity,
257 Node* startNode = nullptr); 255 Node* startNode = nullptr);
258 256
259 bool isTouchPointerIdActiveOnFrame(int, LocalFrame*) const; 257 bool isTouchPointerIdActiveOnFrame(int, LocalFrame*) const;
260 258
261 private: 259 private:
262 WebInputEventResult handleMouseMoveOrLeaveEvent( 260 WebInputEventResult handleMouseMoveOrLeaveEvent(
263 const PlatformMouseEvent&, 261 const WebMouseEvent&,
264 const Vector<PlatformMouseEvent>&, 262 const Vector<WebMouseEvent>&,
265 HitTestResult* hoveredNode = nullptr, 263 HitTestResult* hoveredNode = nullptr,
266 bool onlyUpdateScrollbars = false, 264 bool onlyUpdateScrollbars = false,
267 bool forceLeave = false); 265 bool forceLeave = false);
268 266
269 HitTestRequest::HitTestRequestType getHitTypeForGestureType( 267 HitTestRequest::HitTestRequestType getHitTypeForGestureType(
270 PlatformEvent::EventType); 268 PlatformEvent::EventType);
271 void applyTouchAdjustment(WebGestureEvent*, HitTestResult*); 269 void applyTouchAdjustment(WebGestureEvent*, HitTestResult*);
272 WebInputEventResult handleGestureTapDown( 270 WebInputEventResult handleGestureTapDown(
273 const GestureEventWithHitTestResults&); 271 const GestureEventWithHitTestResults&);
274 WebInputEventResult handleGestureTap(const GestureEventWithHitTestResults&); 272 WebInputEventResult handleGestureTap(const GestureEventWithHitTestResults&);
(...skipping 20 matching lines...) Expand all
295 293
296 ScrollableArea* associatedScrollableArea(const PaintLayer*) const; 294 ScrollableArea* associatedScrollableArea(const PaintLayer*) const;
297 295
298 Node* updateMouseEventTargetNode(Node*); 296 Node* updateMouseEventTargetNode(Node*);
299 297
300 // Dispatches ME after corresponding PE provided the PE has not been canceled. 298 // Dispatches ME after corresponding PE provided the PE has not been canceled.
301 // The eventType arg must be a mouse event that can be gated though a 299 // The eventType arg must be a mouse event that can be gated though a
302 // preventDefaulted pointerdown (i.e., one of 300 // preventDefaulted pointerdown (i.e., one of
303 // {mousedown, mousemove, mouseup}). 301 // {mousedown, mousemove, mouseup}).
304 // TODO(mustaq): Can we avoid the clickCount param, instead use 302 // TODO(mustaq): Can we avoid the clickCount param, instead use
305 // PlatformMouseEvent's count? 303 // WebmMouseEvent's count?
306 // Same applied to dispatchMouseEvent() above. 304 // Same applied to dispatchMouseEvent() above.
307 WebInputEventResult updatePointerTargetAndDispatchEvents( 305 WebInputEventResult updatePointerTargetAndDispatchEvents(
308 const AtomicString& mouseEventType, 306 const AtomicString& mouseEventType,
309 Node* target, 307 Node* target,
310 const PlatformMouseEvent&, 308 const String& canvasRegionId,
311 const Vector<PlatformMouseEvent>& coalescedEvents); 309 const WebMouseEvent&,
310 const Vector<WebMouseEvent>& coalescedEvents);
312 311
313 // Clears drag target and related states. It is called when drag is done or 312 // Clears drag target and related states. It is called when drag is done or
314 // canceled. 313 // canceled.
315 void clearDragState(); 314 void clearDragState();
316 315
317 WebInputEventResult passMousePressEventToSubframe( 316 WebInputEventResult passMousePressEventToSubframe(
318 MouseEventWithHitTestResults&, 317 MouseEventWithHitTestResults&,
319 LocalFrame* subframe); 318 LocalFrame* subframe);
320 WebInputEventResult passMouseMoveEventToSubframe( 319 WebInputEventResult passMouseMoveEventToSubframe(
321 MouseEventWithHitTestResults&, 320 MouseEventWithHitTestResults&,
322 const Vector<PlatformMouseEvent>&, 321 const Vector<WebMouseEvent>&,
323 LocalFrame* subframe, 322 LocalFrame* subframe,
324 HitTestResult* hoveredNode = nullptr); 323 HitTestResult* hoveredNode = nullptr);
325 WebInputEventResult passMouseReleaseEventToSubframe( 324 WebInputEventResult passMouseReleaseEventToSubframe(
326 MouseEventWithHitTestResults&, 325 MouseEventWithHitTestResults&,
327 LocalFrame* subframe); 326 LocalFrame* subframe);
328 327
329 bool passMousePressEventToScrollbar(MouseEventWithHitTestResults&); 328 bool passMousePressEventToScrollbar(MouseEventWithHitTestResults&);
330 329
331 void defaultSpaceEventHandler(KeyboardEvent*); 330 void defaultSpaceEventHandler(KeyboardEvent*);
332 void defaultBackspaceEventHandler(KeyboardEvent*); 331 void defaultBackspaceEventHandler(KeyboardEvent*);
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
387 386
388 // Set on GestureTapDown if the |pointerdown| event corresponding to the 387 // Set on GestureTapDown if the |pointerdown| event corresponding to the
389 // triggering |touchstart| event was canceled. This suppresses mouse event 388 // triggering |touchstart| event was canceled. This suppresses mouse event
390 // firing for the current gesture sequence (i.e. until next GestureTapDown). 389 // firing for the current gesture sequence (i.e. until next GestureTapDown).
391 bool m_suppressMouseEventsFromGestures; 390 bool m_suppressMouseEventsFromGestures;
392 }; 391 };
393 392
394 } // namespace blink 393 } // namespace blink
395 394
396 #endif // EventHandler_h 395 #endif // EventHandler_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698