| Index: components/mus/ws/connection_manager.cc
|
| diff --git a/components/mus/ws/connection_manager.cc b/components/mus/ws/connection_manager.cc
|
| index 4ef846194ae22c000aecbfc41f79eb63bbe76413..f67713b28251807e4316d29974d73fef0767ce68 100644
|
| --- a/components/mus/ws/connection_manager.cc
|
| +++ b/components/mus/ws/connection_manager.cc
|
| @@ -461,6 +461,11 @@ void ConnectionManager::OnWindowHierarchyChanged(ServerWindow* window,
|
| if (in_destructor_)
|
| return;
|
|
|
| + WindowManagerState* wms =
|
| + display_manager_->GetWindowManagerAndDisplay(window).window_manager_state;
|
| + if (wms)
|
| + wms->ReleaseCaptureBlockedByAnyModalWindow();
|
| +
|
| ProcessWindowHierarchyChanged(window, new_parent, old_parent);
|
|
|
| // TODO(beng): optimize.
|
| @@ -526,6 +531,16 @@ void ConnectionManager::OnWillChangeWindowVisibility(ServerWindow* window) {
|
| }
|
| }
|
|
|
| +void ConnectionManager::OnWindowVisibilityChanged(ServerWindow* window) {
|
| + if (in_destructor_)
|
| + return;
|
| +
|
| + WindowManagerState* wms =
|
| + display_manager_->GetWindowManagerAndDisplay(window).window_manager_state;
|
| + if (wms)
|
| + wms->ReleaseCaptureBlockedByModalWindow(window);
|
| +}
|
| +
|
| void ConnectionManager::OnWindowPredefinedCursorChanged(ServerWindow* window,
|
| int32_t cursor_id) {
|
| if (in_destructor_)
|
|
|