Index: components/mus/ws/event_dispatcher.h |
diff --git a/components/mus/ws/event_dispatcher.h b/components/mus/ws/event_dispatcher.h |
index 2451a3a1cbd32586028f431f148440827b86aa1e..814cf3723d2b04a14113ed9b5ff65fbd8fb86bfa 100644 |
--- a/components/mus/ws/event_dispatcher.h |
+++ b/components/mus/ws/event_dispatcher.h |
@@ -36,6 +36,12 @@ class EventDispatcher : public ServerWindowObserver { |
void set_surface_id(cc::SurfaceId surface_id) { surface_id_ = surface_id; } |
+ // |capture_window_| will receive all input. See window_tree.mojom for |
+ // details. |
+ ServerWindow* capture_window() { return capture_window_; } |
+ const ServerWindow* capture_window() const { return capture_window_; } |
+ void SetCaptureWindow(ServerWindow* capture_window, bool in_nonclient_area); |
+ |
// Retrieves the ServerWindow of the last mouse move. |
ServerWindow* mouse_cursor_source_window() const { |
return mouse_cursor_source_window_; |
@@ -57,6 +63,8 @@ class EventDispatcher : public ServerWindowObserver { |
void ProcessEvent(mojom::EventPtr event); |
private: |
+ friend class EventDispatcherTest; |
+ |
// Keeps track of state associated with an active pointer. |
struct PointerTarget { |
PointerTarget() |
@@ -135,7 +143,9 @@ class EventDispatcher : public ServerWindowObserver { |
EventDispatcherDelegate* delegate_; |
ServerWindow* root_; |
+ ServerWindow* capture_window_; |
+ bool capture_window_in_nonclient_area_; |
bool mouse_button_down_; |
ServerWindow* mouse_cursor_source_window_; |