| Index: components/mus/example/wm/window_manager_application.cc
|
| diff --git a/components/mus/example/wm/window_manager_application.cc b/components/mus/example/wm/window_manager_application.cc
|
| index 2ab82f8fa8bafe2225ee016e228a3d9b463c7ba5..175397e79bc78d766cf9a77c87acb79cb7196a01 100644
|
| --- a/components/mus/example/wm/window_manager_application.cc
|
| +++ b/components/mus/example/wm/window_manager_application.cc
|
| @@ -43,13 +43,11 @@ bool WindowManagerApplication::ConfigureIncomingConnection(
|
|
|
| void WindowManagerApplication::OnEmbed(mus::Window* root) {
|
| root_ = root;
|
| + root_->AddObserver(this);
|
| CreateContainers();
|
| layout_.reset(
|
| new WindowLayout(GetWindowForContainer(Container::USER_WINDOWS)));
|
|
|
| - host_->EnableWindowDraggingForChildren(
|
| - GetWindowForContainer(Container::USER_WINDOWS)->id());
|
| -
|
| window_manager_.reset(new WindowManagerImpl(this));
|
| for (auto request : requests_)
|
| window_manager_binding_.AddBinding(window_manager_.get(), request->Pass());
|
| @@ -73,6 +71,15 @@ void WindowManagerApplication::Create(
|
| }
|
| }
|
|
|
| +void WindowManagerApplication::OnWindowDestroyed(mus::Window* window) {
|
| + DCHECK_EQ(window, root_);
|
| + root_->RemoveObserver(this);
|
| + // Delete the |window_manager_| here so that WindowManager doesn't have to
|
| + // worry about the possibility of |root_| being null.
|
| + window_manager_.reset();
|
| + root_ = nullptr;
|
| +}
|
| +
|
| void WindowManagerApplication::CreateContainers() {
|
| for (uint16_t container =
|
| static_cast<uint16_t>(Container::ALL_USER_BACKGROUND);
|
|
|