Index: ash/shell.cc |
diff --git a/ash/shell.cc b/ash/shell.cc |
index b80c60533086c7a5120c07cbee6be0c18d1e7a2a..ddae9d6270aa10f50b2a4d2cdfe023385385c831 100644 |
--- a/ash/shell.cc |
+++ b/ash/shell.cc |
@@ -382,6 +382,14 @@ void Shell::OnCastingSessionStartedOrStopped(bool started) { |
#endif |
} |
+void Shell::OnOverviewModeStarted() { |
+ FOR_EACH_OBSERVER(ShellObserver, observers_, OnOverviewModeStarted()); |
+} |
+ |
+void Shell::OnOverviewModeEnded() { |
+ FOR_EACH_OBSERVER(ShellObserver, observers_, OnOverviewModeEnded()); |
+} |
+ |
void Shell::CreateShelf() { |
RootWindowControllerList controllers = GetAllRootWindowControllers(); |
for (RootWindowControllerList::iterator iter = controllers.begin(); |
@@ -437,6 +445,10 @@ void Shell::EnableMaximizeModeWindowManager(bool enable) { |
} |
} |
+bool Shell::IsMaximizeModeWindowManagerEnabled() { |
+ return NULL != maximize_mode_window_manager_.get(); |
+} |
+ |
void Shell::UpdateShelfVisibility() { |
RootWindowControllerList controllers = GetAllRootWindowControllers(); |
for (RootWindowControllerList::iterator iter = controllers.begin(); |
@@ -651,6 +663,11 @@ Shell::~Shell() { |
// TooltipController is deleted with the Shell so removing its references. |
RemovePreTargetHandler(tooltip_controller_.get()); |
+ // Disable the maximize mode here since it can be destroyed without without |
+ // side effects, but needs to be destroyed before the root windows and the |
+ // WorkspaceLayoutManager get destroyed. |
+ maximize_mode_window_manager_.reset(); |
+ |
// AppList needs to be released before shelf layout manager, which is |
// destroyed with shelf container in the loop below. However, app list |
// container is now on top of shelf container and released after it. |