| Index: components/mus/ws/connection_manager.cc
|
| diff --git a/components/mus/ws/connection_manager.cc b/components/mus/ws/connection_manager.cc
|
| index 47c896a9a1923277a1300105f6930d4188a88dfe..cdd8a4616b6e32f8533333c44acfb0ae5efba98d 100644
|
| --- a/components/mus/ws/connection_manager.cc
|
| +++ b/components/mus/ws/connection_manager.cc
|
| @@ -675,6 +675,20 @@ void ConnectionManager::OnWillChangeWindowVisibility(ServerWindow* window) {
|
| }
|
| }
|
|
|
| +void ConnectionManager::OnWindowVisibilityChanged(ServerWindow* window) {
|
| + if (!window->is_modal() || !window->IsDrawn())
|
| + return;
|
| +
|
| + WindowTreeHostImpl* host = GetWindowTreeHostByWindow(window);
|
| + ServerWindow* capture_window = host->GetCaptureWindow();
|
| + if (window->transient_parent() &&
|
| + !window->transient_parent()->Contains(capture_window)) {
|
| + return;
|
| + }
|
| +
|
| + host->SetCapture(nullptr, false);
|
| +}
|
| +
|
| void ConnectionManager::OnWindowPredefinedCursorChanged(ServerWindow* window,
|
| int32_t cursor_id) {
|
| if (in_destructor_)
|
|
|