Chromium Code Reviews| Index: services/ui/ws/event_dispatcher.h |
| diff --git a/services/ui/ws/event_dispatcher.h b/services/ui/ws/event_dispatcher.h |
| index 193786bd6ee5d119c42684623986a3ce9c612e94..5a7ff550b828d5917312e889b62fbc19b570b6d3 100644 |
| --- a/services/ui/ws/event_dispatcher.h |
| +++ b/services/ui/ws/event_dispatcher.h |
| @@ -59,6 +59,8 @@ class EventDispatcher : public ServerWindowObserver, public DragCursorUpdater { |
| // any events to the delegate. |
| void Reset(); |
| + const EventTargeter* event_targeter() const { return event_targeter_.get(); } |
| + |
| void SetMousePointerDisplayLocation(const gfx::Point& display_location, |
| const int64_t display_id); |
| const gfx::Point& mouse_pointer_last_location() const { |
| @@ -144,6 +146,8 @@ class EventDispatcher : public ServerWindowObserver, public DragCursorUpdater { |
| // ANY and there is a matching accelerator with PRE_TARGET found, than only |
| // OnAccelerator() is called. The expectation is after the PRE_TARGET has been |
| // handled this is again called with an AcceleratorMatchPhase of POST_ONLY. |
| + // This may be asynchronous if we need to find the target window for |event| |
| + // asynchronously. |
| void ProcessEvent(const ui::Event& event, |
| const int64_t display_id, |
| AcceleratorMatchPhase match_phase); |
| @@ -153,6 +157,17 @@ class EventDispatcher : public ServerWindowObserver, public DragCursorUpdater { |
| void SetMouseCursorSourceWindow(ServerWindow* window); |
| + // Called after we found the target for the current mouse cursor to see if |
| + // |mouse_pointer_last_location_| and |mouse_pointer_display_id_| need to be |
| + // updated based on the new target we found. No need to call delegate's |
| + // OnMouseCursorLocationChanged since mouse location is the same in |
| + // screen-coord. |
| + // TODO(riajiang): No need to update mouse location after ozone drm can tell |
| + // us the right display the cursor is on for drag-n-drop events. |
| + // crbug.com/726470 |
| + void UpdateMousePointerLocation(const gfx::Point& new_mouse_location, |
|
sky
2017/06/02 21:17:51
Update -> Set i.e. SetMousePointerLocation.
riajiang
2017/06/02 22:56:17
Done.
|
| + const int64_t new_mouse_display_id); |
|
sky
2017/06/02 21:17:51
Generally we don't use const for primitive types.
riajiang
2017/06/02 22:56:17
I see, removed.
|
| + |
| void ProcessKeyEvent(const ui::KeyEvent& event, |
| AcceleratorMatchPhase match_phase); |
| @@ -169,7 +184,29 @@ class EventDispatcher : public ServerWindowObserver, public DragCursorUpdater { |
| // when no buttons on the mouse are down. |
| // This also generates exit events as appropriate. For example, if the mouse |
| // moves between one window to another an exit is generated on the first. |
| - void ProcessPointerEvent(const ui::PointerEvent& event); |
| + // |pointer_target_found| is the PointerTarget for |event| based on the |
| + // |deepest_window|, the deepest visible window for the root_location |
| + // of the |event|. |location_in_display| and |display_id| are updated values |
| + // for root_location and |event_display_id_| (e.g. during drag-n-drop). |
| + void ProcessPointerEventOnFoundTarget( |
| + const ui::PointerEvent& event, |
| + const PointerTarget& pointer_target_found, |
| + const DeepestWindow& deepest_window, |
| + const gfx::Point& location_in_display, |
| + const int64_t display_id); |
| + |
| + void UpdateNonClientAreaForCurrentWindowOnFoundWindow( |
| + const DeepestWindow& deepest_window, |
| + const gfx::Point& location_in_display, |
| + const int64_t display_id); |
| + void UpdateCursorProviderByLastKnownLocationOnFoundWindow( |
| + const DeepestWindow& deepest_window, |
| + const gfx::Point& location_in_display, |
| + const int64_t display_id); |
| + void UpdateCursorProviderByLastKnownLocationWithWindow( |
| + const DeepestWindow& deepest_window, |
| + const gfx::Point& location_in_display, |
| + const int64_t display_id); |
| // Adds |pointer_target| to |pointer_targets_|. |
| void StartTrackingPointer(int32_t pointer_id, |
| @@ -182,7 +219,8 @@ class EventDispatcher : public ServerWindowObserver, public DragCursorUpdater { |
| // pointer sends the appropriate event to the delegate and updates the |
| // currently tracked PointerTarget appropriately. |
| void UpdateTargetForPointer(int32_t pointer_id, |
| - const ui::LocatedEvent& event); |
| + const ui::PointerEvent& event, |
| + const PointerTarget& pointer_target_found); |
| // Returns true if any pointers are in the pressed/down state. |
| bool AreAnyPointersDown() const; |