| Index: services/ui/ws/event_dispatcher.h
|
| diff --git a/services/ui/ws/event_dispatcher.h b/services/ui/ws/event_dispatcher.h
|
| index 8d075b2e57774bc72f129d71fe616ca4ca7a398a..3cd80e920057ae1c755e379b25f1dfe23f004a20 100644
|
| --- a/services/ui/ws/event_dispatcher.h
|
| +++ b/services/ui/ws/event_dispatcher.h
|
| @@ -63,7 +63,7 @@ class EventDispatcher : public ServerWindowObserver,
|
| void Reset();
|
|
|
| void SetMousePointerDisplayLocation(const gfx::Point& display_location,
|
| - const int64_t display_id);
|
| + int64_t display_id);
|
| const gfx::Point& mouse_pointer_last_location() const {
|
| return mouse_pointer_last_location_;
|
| }
|
| @@ -142,18 +142,24 @@ class EventDispatcher : public ServerWindowObserver,
|
|
|
| void RemoveAccelerator(uint32_t id);
|
|
|
| + // True if we are actively finding a target for an event, false otherwise.
|
| + bool IsProcessingEvent() const;
|
| +
|
| // Processes the supplied event, informing the delegate as approriate. This
|
| // may result in generating any number of events. If |match_phase| is
|
| // 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,
|
| + int64_t display_id,
|
| AcceleratorMatchPhase match_phase);
|
|
|
| // EventTargeterDelegate:
|
| ServerWindow* GetRootWindowContaining(gfx::Point* location_in_display,
|
| int64_t* display_id) override;
|
| + void ProcessNextAvailableEvent() override;
|
|
|
| private:
|
| friend class test::EventDispatcherTestApi;
|
| @@ -208,7 +214,17 @@ class EventDispatcher : public ServerWindowObserver,
|
| // 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| 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 LocationTarget& location_target);
|
| +
|
| + void UpdateNonClientAreaForCurrentWindowOnFoundWindow(
|
| + const LocationTarget& location_target);
|
| + void UpdateCursorProviderByLastKnownLocationOnFoundWindow(
|
| + const LocationTarget& location_target);
|
|
|
| // Adds |pointer_target| to |pointer_targets_|.
|
| void StartTrackingPointer(int32_t pointer_id,
|
|
|