| Index: components/mus/public/cpp/lib/window_tree_client_impl.cc
|
| diff --git a/components/mus/public/cpp/lib/window_tree_client_impl.cc b/components/mus/public/cpp/lib/window_tree_client_impl.cc
|
| index 36c5ba74441e32cf03cfc55268141b48e8e53021..db47c490b945266a4a233ff6388470904cb8f2ad 100644
|
| --- a/components/mus/public/cpp/lib/window_tree_client_impl.cc
|
| +++ b/components/mus/public/cpp/lib/window_tree_client_impl.cc
|
| @@ -193,6 +193,16 @@ void WindowTreeClientImpl::WaitForEmbed() {
|
| }
|
|
|
| void WindowTreeClientImpl::DestroyWindow(Window* window) {
|
| + // TODO(jonross): Also clear the focused window (crbug.com/611983)
|
| + if (window == capture_window_) {
|
| + InFlightCaptureChange reset_change(this, nullptr);
|
| + ApplyServerChangeToExistingInFlightChange(reset_change);
|
| + // Normally just updating the queued changes is sufficient. However since
|
| + // |window| is being destroyed, it will not be possible to notify its
|
| + // observers
|
| + // of the lost capture. Update local state now.
|
| + LocalSetCapture(nullptr);
|
| + }
|
| DCHECK(tree_);
|
| const uint32_t change_id = ScheduleInFlightChange(base::WrapUnique(
|
| new CrashInFlightChange(window, ChangeType::DELETE_WINDOW)));
|
|
|