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 716907d266aab265355f96ac0468e69556fa03c7..687324ce7bd4714ffc5bbceb388fd2f2b7537466 100644 |
--- a/ash/wm/workspace/workspace_layout_manager.cc |
+++ b/ash/wm/workspace/workspace_layout_manager.cc |
@@ -17,6 +17,7 @@ |
#include "ash/wm/window_state.h" |
#include "ash/wm/window_util.h" |
#include "ash/wm/wm_event.h" |
+#include "ash/wm/workspace/workspace_layout_manager_delegate.h" |
#include "ui/aura/client/activation_client.h" |
#include "ui/aura/client/aura_constants.h" |
#include "ui/aura/window.h" |
@@ -60,6 +61,11 @@ void WorkspaceLayoutManager::SetShelf(internal::ShelfLayoutManager* shelf) { |
shelf_ = shelf; |
} |
+void WorkspaceLayoutManager::SetMaximizeBackdropDelegate( |
+ scoped_ptr<WorkspaceLayoutManagerDelegate> delegate) { |
+ backdrop_delegate_.reset(delegate.release()); |
+} |
+ |
////////////////////////////////////////////////////////////////////////////// |
// WorkspaceLayoutManager, aura::LayoutManager implementation: |
@@ -72,6 +78,8 @@ void WorkspaceLayoutManager::OnWindowAddedToLayout(Window* child) { |
window_state->AddObserver(this); |
UpdateShelfVisibility(); |
UpdateFullscreenState(); |
+ if (backdrop_delegate_) |
+ backdrop_delegate_->OnWindowAddedToLayout(child); |
WindowPositioner::RearrangeVisibleWindowOnShow(child); |
} |
@@ -87,6 +95,8 @@ void WorkspaceLayoutManager::OnWillRemoveWindowFromLayout(Window* child) { |
void WorkspaceLayoutManager::OnWindowRemovedFromLayout(Window* child) { |
UpdateShelfVisibility(); |
UpdateFullscreenState(); |
+ if (backdrop_delegate_) |
+ backdrop_delegate_->OnWindowRemovedFromLayout(child); |
} |
void WorkspaceLayoutManager::OnChildWindowVisibilityChanged(Window* child, |
@@ -102,6 +112,8 @@ void WorkspaceLayoutManager::OnChildWindowVisibilityChanged(Window* child, |
WindowPositioner::RearrangeVisibleWindowOnHideOrRemove(child); |
UpdateFullscreenState(); |
UpdateShelfVisibility(); |
+ if (backdrop_delegate_) |
+ backdrop_delegate_->OnChildWindowVisibilityChanged(child, visible); |
} |
void WorkspaceLayoutManager::SetChildBounds( |
@@ -162,6 +174,8 @@ void WorkspaceLayoutManager::OnWindowPropertyChanged(Window* window, |
void WorkspaceLayoutManager::OnWindowStackingChanged(aura::Window* window) { |
UpdateShelfVisibility(); |
UpdateFullscreenState(); |
+ if (backdrop_delegate_) |
+ backdrop_delegate_->OnWindowStackingChanged(window); |
} |
void WorkspaceLayoutManager::OnWindowDestroying(aura::Window* window) { |
@@ -210,6 +224,8 @@ void WorkspaceLayoutManager::OnPostWindowStateTypeChange( |
} |
UpdateShelfVisibility(); |
+ if (backdrop_delegate_) |
+ backdrop_delegate_->OnPostWindowStateTypeChange(window_state, old_type); |
} |
////////////////////////////////////////////////////////////////////////////// |