| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef UI_AURA_WINDOW_EVENT_DISPATCHER_H_ | 5 #ifndef UI_AURA_WINDOW_EVENT_DISPATCHER_H_ |
| 6 #define UI_AURA_WINDOW_EVENT_DISPATCHER_H_ | 6 #define UI_AURA_WINDOW_EVENT_DISPATCHER_H_ |
| 7 | 7 |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 76 | 76 |
| 77 void DispatchCancelModeEvent(); | 77 void DispatchCancelModeEvent(); |
| 78 | 78 |
| 79 // Dispatches a ui::ET_MOUSE_EXITED event at |point| to the |target| | 79 // Dispatches a ui::ET_MOUSE_EXITED event at |point| to the |target| |
| 80 // If the |target| is NULL, we will dispatch the event to the root-window | 80 // If the |target| is NULL, we will dispatch the event to the root-window |
| 81 // TODO(beng): needed only for WTH::OnCursorVisibilityChanged(). | 81 // TODO(beng): needed only for WTH::OnCursorVisibilityChanged(). |
| 82 ui::EventDispatchDetails DispatchMouseExitAtPoint(Window* target, | 82 ui::EventDispatchDetails DispatchMouseExitAtPoint(Window* target, |
| 83 const gfx::Point& point) | 83 const gfx::Point& point) |
| 84 WARN_UNUSED_RESULT; | 84 WARN_UNUSED_RESULT; |
| 85 | 85 |
| 86 // Posts a task to send synthesized mouse move event if there is no pending |
| 87 // task. |
| 88 void PostSynthesizeMouseMove(); |
| 89 |
| 86 // Gesture Recognition ------------------------------------------------------- | 90 // Gesture Recognition ------------------------------------------------------- |
| 87 | 91 |
| 88 // When a touch event is dispatched to a Window, it may want to process the | 92 // When a touch event is dispatched to a Window, it may want to process the |
| 89 // touch event asynchronously. In such cases, the window should consume the | 93 // touch event asynchronously. In such cases, the window should consume the |
| 90 // event during the event dispatch. Once the event is properly processed, the | 94 // event during the event dispatch. Once the event is properly processed, the |
| 91 // window should let the WindowEventDispatcher know about the result of the | 95 // window should let the WindowEventDispatcher know about the result of the |
| 92 // event processing, so that gesture events can be properly created and | 96 // event processing, so that gesture events can be properly created and |
| 93 // dispatched. |event|'s location should be in the dispatcher's coordinate | 97 // dispatched. |event|'s location should be in the dispatcher's coordinate |
| 94 // space, in DIPs. | 98 // space, in DIPs. |
| 95 virtual void ProcessedTouchEvent(Window* window, ui::EventResult result); | 99 virtual void ProcessedTouchEvent(Window* window, ui::EventResult result); |
| (...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 211 | 215 |
| 212 // We hold and aggregate mouse drags and touch moves as a way of throttling | 216 // We hold and aggregate mouse drags and touch moves as a way of throttling |
| 213 // resizes when HoldMouseMoves() is called. The following methods are used to | 217 // resizes when HoldMouseMoves() is called. The following methods are used to |
| 214 // dispatch held and newly incoming mouse and touch events, typically when an | 218 // dispatch held and newly incoming mouse and touch events, typically when an |
| 215 // event other than one of these needs dispatching or a matching | 219 // event other than one of these needs dispatching or a matching |
| 216 // ReleaseMouseMoves()/ReleaseTouchMoves() is called. NOTE: because these | 220 // ReleaseMouseMoves()/ReleaseTouchMoves() is called. NOTE: because these |
| 217 // methods dispatch events from WindowTreeHost the coordinates are in terms of | 221 // methods dispatch events from WindowTreeHost the coordinates are in terms of |
| 218 // the root. | 222 // the root. |
| 219 ui::EventDispatchDetails DispatchHeldEvents() WARN_UNUSED_RESULT; | 223 ui::EventDispatchDetails DispatchHeldEvents() WARN_UNUSED_RESULT; |
| 220 | 224 |
| 221 // Posts a task to send synthesized mouse move event if there is no a pending | |
| 222 // task. | |
| 223 void PostSynthesizeMouseMove(); | |
| 224 | |
| 225 // Creates and dispatches synthesized mouse move event using the current mouse | 225 // Creates and dispatches synthesized mouse move event using the current mouse |
| 226 // location. | 226 // location. |
| 227 ui::EventDispatchDetails SynthesizeMouseMoveEvent() WARN_UNUSED_RESULT; | 227 ui::EventDispatchDetails SynthesizeMouseMoveEvent() WARN_UNUSED_RESULT; |
| 228 | 228 |
| 229 // Calls SynthesizeMouseMove() if |window| is currently visible and contains | 229 // Calls SynthesizeMouseMove() if |window| is currently visible and contains |
| 230 // the mouse cursor. | 230 // the mouse cursor. |
| 231 void SynthesizeMouseMoveAfterChangeToWindow(Window* window); | 231 void SynthesizeMouseMoveAfterChangeToWindow(Window* window); |
| 232 | 232 |
| 233 void PreDispatchLocatedEvent(Window* target, ui::LocatedEvent* event); | 233 void PreDispatchLocatedEvent(Window* target, ui::LocatedEvent* event); |
| 234 void PreDispatchMouseEvent(Window* target, ui::MouseEvent* event); | 234 void PreDispatchMouseEvent(Window* target, ui::MouseEvent* event); |
| (...skipping 30 matching lines...) Expand all Loading... |
| 265 | 265 |
| 266 // Used to schedule DispatchHeldEvents() when |move_hold_count_| goes to 0. | 266 // Used to schedule DispatchHeldEvents() when |move_hold_count_| goes to 0. |
| 267 base::WeakPtrFactory<WindowEventDispatcher> held_event_factory_; | 267 base::WeakPtrFactory<WindowEventDispatcher> held_event_factory_; |
| 268 | 268 |
| 269 DISALLOW_COPY_AND_ASSIGN(WindowEventDispatcher); | 269 DISALLOW_COPY_AND_ASSIGN(WindowEventDispatcher); |
| 270 }; | 270 }; |
| 271 | 271 |
| 272 } // namespace aura | 272 } // namespace aura |
| 273 | 273 |
| 274 #endif // UI_AURA_WINDOW_EVENT_DISPATCHER_H_ | 274 #endif // UI_AURA_WINDOW_EVENT_DISPATCHER_H_ |
| OLD | NEW |