| Index: mash/wm/window_manager_impl.cc
|
| diff --git a/mash/wm/window_manager_impl.cc b/mash/wm/window_manager_impl.cc
|
| index 5195c1f7786b0933440673b6dc632004cc40226a..84e5b2f89cb0a2084102c17f672cdaa09f149663 100644
|
| --- a/mash/wm/window_manager_impl.cc
|
| +++ b/mash/wm/window_manager_impl.cc
|
| @@ -123,6 +123,15 @@ void WindowManagerImpl::OnTreeChanging(const TreeChangeParams& params) {
|
| params.target->RemoveObserver(this);
|
| else if (state_->WindowIsContainer(params.new_parent))
|
| params.target->AddObserver(this);
|
| +
|
| + if (user_window_observer_) {
|
| + mus::Window* user_window_container =
|
| + state_->GetWindowForContainer(mojom::CONTAINER_USER_WINDOWS);
|
| + if (params.new_parent == user_window_container)
|
| + user_window_observer_->OnUserWindowAdded(params.target->id());
|
| + else if (params.old_parent == user_window_container)
|
| + user_window_observer_->OnUserWindowRemoved(params.target->id());
|
| + }
|
| }
|
|
|
| void WindowManagerImpl::OnWindowEmbeddedAppDisconnected(mus::Window* window) {
|
| @@ -167,6 +176,20 @@ void WindowManagerImpl::GetConfig(const GetConfigCallback& callback) {
|
| callback.Run(std::move(config));
|
| }
|
|
|
| +void WindowManagerImpl::AddUserWindowObserver(
|
| + mus::mojom::UserWindowObserverPtr observer) {
|
| + // TODO(msw): Support multiple observers.
|
| + user_window_observer_ = std::move(observer);
|
| +}
|
| +
|
| +void WindowManagerImpl::FocusUserWindow(uint32_t window_id) {
|
| + mus::Window* container =
|
| + state_->GetWindowForContainer(mojom::CONTAINER_USER_WINDOWS);
|
| + mus::Window* window = container->GetChildById(window_id);
|
| + if (window)
|
| + window->SetFocus();
|
| +}
|
| +
|
| bool WindowManagerImpl::OnWmSetBounds(mus::Window* window, gfx::Rect* bounds) {
|
| // By returning true the bounds of |window| is updated.
|
| return true;
|
|
|