| Index: components/mus/ws/window_tree_host_impl.cc
|
| diff --git a/components/mus/ws/window_tree_host_impl.cc b/components/mus/ws/window_tree_host_impl.cc
|
| index f1200a6648dfae284c3b77363ad603769772aaf8..59fc52980a1f765bdfcc44b211908adb320481f5 100644
|
| --- a/components/mus/ws/window_tree_host_impl.cc
|
| +++ b/components/mus/ws/window_tree_host_impl.cc
|
| @@ -167,6 +167,18 @@ const mojom::ViewportMetrics& WindowTreeHostImpl::GetViewportMetrics() const {
|
| return display_manager_->GetViewportMetrics();
|
| }
|
|
|
| +void WindowTreeHostImpl::SetCapture(ServerWindow* window,
|
| + bool in_nonclient_area) {
|
| + ServerWindow* capture_window = event_dispatcher_.capture_window();
|
| + if (capture_window == window)
|
| + return;
|
| + event_dispatcher_.SetCaptureWindow(window, in_nonclient_area);
|
| + if (window)
|
| + display_manager_->SetCapture();
|
| + else
|
| + display_manager_->ReleaseCapture();
|
| +}
|
| +
|
| mojom::Rotation WindowTreeHostImpl::GetRotation() const {
|
| return display_manager_->GetRotation();
|
| }
|
| @@ -348,8 +360,6 @@ void WindowTreeHostImpl::DispatchInputEventToWindowImpl(ServerWindow* target,
|
| event_dispatcher_.mouse_cursor_source_window()->cursor());
|
| }
|
|
|
| - // If the event is in the non-client area the event goes to the owner of
|
| - // the window. Otherwise if the window is an embed root, forward to the
|
| // embedded window.
|
| WindowTreeImpl* connection =
|
| in_nonclient_area
|
| @@ -399,6 +409,10 @@ void WindowTreeHostImpl::OnEvent(const ui::Event& event) {
|
| event_dispatcher_.ProcessEvent(std::move(mojo_event));
|
| }
|
|
|
| +void WindowTreeHostImpl::OnLostCapture() {
|
| + SetCapture(nullptr, false);
|
| +}
|
| +
|
| void WindowTreeHostImpl::OnDisplayClosed() {
|
| if (delegate_)
|
| delegate_->OnDisplayClosed();
|
| @@ -530,6 +544,11 @@ ServerWindow* WindowTreeHostImpl::GetFocusedWindowForEventDispatcher() {
|
| return GetFocusedWindow();
|
| }
|
|
|
| +void WindowTreeHostImpl::OnLostCapture(ServerWindow* window) {
|
| + DCHECK(window);
|
| + connection_manager_->ProcessLostCapture(window);
|
| +}
|
| +
|
| void WindowTreeHostImpl::DispatchInputEventToWindow(ServerWindow* target,
|
| bool in_nonclient_area,
|
| mojom::EventPtr event) {
|
|
|