| Index: ash/wm/workspace/workspace_layout_manager.cc
|
| diff --git a/ash/wm/workspace/workspace_layout_manager.cc b/ash/wm/workspace/workspace_layout_manager.cc
|
| index 4da7bbc049739d96ae3c4196d9c96edd4dcdedd2..8ec5067b4757275fa1dff92d4936f31f31979088 100644
|
| --- a/ash/wm/workspace/workspace_layout_manager.cc
|
| +++ b/ash/wm/workspace/workspace_layout_manager.cc
|
| @@ -22,7 +22,8 @@
|
| #include "ash/wm/window_state_aura.h"
|
| #include "ash/wm/window_util.h"
|
| #include "ash/wm/wm_event.h"
|
| -#include "ash/wm/workspace/workspace_layout_manager_backdrop_delegate.h"
|
| +#include "ash/wm/workspace/backdrop_controller.h"
|
| +#include "ash/wm/workspace/backdrop_delegate.h"
|
| #include "ash/wm_window.h"
|
| #include "base/command_line.h"
|
| #include "ui/aura/client/aura_constants.h"
|
| @@ -50,6 +51,7 @@ WorkspaceLayoutManager::WorkspaceLayoutManager(aura::Window* window)
|
| root_window_->AddObserver(this);
|
| display::Screen::GetScreen()->AddObserver(this);
|
| DCHECK(window->GetProperty(kSnapChildrenToPixelBoundary));
|
| + backdrop_controller_ = base::MakeUnique<BackdropController>(window_);
|
| }
|
|
|
| WorkspaceLayoutManager::~WorkspaceLayoutManager() {
|
| @@ -65,9 +67,9 @@ WorkspaceLayoutManager::~WorkspaceLayoutManager() {
|
| Shell::Get()->RemoveShellObserver(this);
|
| }
|
|
|
| -void WorkspaceLayoutManager::SetMaximizeBackdropDelegate(
|
| - std::unique_ptr<WorkspaceLayoutManagerBackdropDelegate> delegate) {
|
| - backdrop_delegate_ = std::move(delegate);
|
| +void WorkspaceLayoutManager::SetBackdropDelegate(
|
| + std::unique_ptr<BackdropDelegate> delegate) {
|
| + backdrop_controller_->SetBackdropDelegate(std::move(delegate));
|
| }
|
|
|
| //////////////////////////////////////////////////////////////////////////////
|
| @@ -84,8 +86,8 @@ void WorkspaceLayoutManager::OnWindowAddedToLayout(aura::Window* child) {
|
| window_state->AddObserver(this);
|
| UpdateShelfVisibility();
|
| UpdateFullscreenState();
|
| - if (backdrop_delegate_)
|
| - backdrop_delegate_->OnWindowAddedToLayout(WmWindow::Get(child));
|
| +
|
| + backdrop_controller_->OnWindowAddedToLayout(child);
|
| WindowPositioner::RearrangeVisibleWindowOnShow(WmWindow::Get(child));
|
| if (Shell::Get()->screen_pinning_controller()->IsPinned())
|
| wm::GetWindowState(child)->DisableAlwaysOnTop(nullptr);
|
| @@ -104,8 +106,7 @@ void WorkspaceLayoutManager::OnWillRemoveWindowFromLayout(aura::Window* child) {
|
| void WorkspaceLayoutManager::OnWindowRemovedFromLayout(aura::Window* child) {
|
| UpdateShelfVisibility();
|
| UpdateFullscreenState();
|
| - if (backdrop_delegate_)
|
| - backdrop_delegate_->OnWindowRemovedFromLayout(WmWindow::Get(child));
|
| + backdrop_controller_->OnWindowRemovedFromLayout(child);
|
| }
|
|
|
| void WorkspaceLayoutManager::OnChildWindowVisibilityChanged(aura::Window* child,
|
| @@ -122,10 +123,7 @@ void WorkspaceLayoutManager::OnChildWindowVisibilityChanged(aura::Window* child,
|
| WmWindow::Get(child));
|
| UpdateFullscreenState();
|
| UpdateShelfVisibility();
|
| - if (backdrop_delegate_) {
|
| - backdrop_delegate_->OnChildWindowVisibilityChanged(WmWindow::Get(child),
|
| - visible);
|
| - }
|
| + backdrop_controller_->OnChildWindowVisibilityChanged(child, visible);
|
| }
|
|
|
| void WorkspaceLayoutManager::SetChildBounds(aura::Window* child,
|
| @@ -216,22 +214,24 @@ void WorkspaceLayoutManager::OnWindowHierarchyChanged(
|
| void WorkspaceLayoutManager::OnWindowPropertyChanged(aura::Window* window,
|
| const void* key,
|
| intptr_t old) {
|
| - if (key == aura::client::kAlwaysOnTopKey &&
|
| - window->GetProperty(aura::client::kAlwaysOnTopKey)) {
|
| - aura::Window* container =
|
| - root_window_controller_->always_on_top_controller()
|
| - ->GetContainer(WmWindow::Get(window))
|
| - ->aura_window();
|
| - if (window->parent() != container)
|
| - container->AddChild(window);
|
| + if (key == aura::client::kAlwaysOnTopKey) {
|
| + if (window->GetProperty(aura::client::kAlwaysOnTopKey)) {
|
| + aura::Window* container =
|
| + root_window_controller_->always_on_top_controller()
|
| + ->GetContainer(WmWindow::Get(window))
|
| + ->aura_window();
|
| + if (window->parent() != container)
|
| + container->AddChild(window);
|
| + }
|
| + } else if (key == aura::client::kHasBackdrop) {
|
| + backdrop_controller_->UpdateBackdrop();
|
| }
|
| }
|
|
|
| void WorkspaceLayoutManager::OnWindowStackingChanged(aura::Window* window) {
|
| UpdateShelfVisibility();
|
| UpdateFullscreenState();
|
| - if (backdrop_delegate_)
|
| - backdrop_delegate_->OnWindowStackingChanged(WmWindow::Get(window));
|
| + backdrop_controller_->OnWindowStackingChanged(window);
|
| }
|
|
|
| void WorkspaceLayoutManager::OnWindowDestroying(aura::Window* window) {
|
| @@ -282,8 +282,7 @@ void WorkspaceLayoutManager::OnPostWindowStateTypeChange(
|
| }
|
|
|
| UpdateShelfVisibility();
|
| - if (backdrop_delegate_)
|
| - backdrop_delegate_->OnPostWindowStateTypeChange(window_state, old_type);
|
| + backdrop_controller_->OnPostWindowStateTypeChange(window_state, old_type);
|
| }
|
|
|
| //////////////////////////////////////////////////////////////////////////////
|
|
|