Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2643)

Unified Diff: ash/wm/workspace/workspace_layout_manager.cc

Issue 2890733005: Refactor backdrop that is currently used in the maximized mode. (Closed)
Patch Set: fix memory issue in AshTouchExplorationManager Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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);
}
//////////////////////////////////////////////////////////////////////////////
« no previous file with comments | « ash/wm/workspace/workspace_layout_manager.h ('k') | ash/wm/workspace/workspace_layout_manager_backdrop_delegate.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698