summaryrefslogtreecommitdiffstats
path: root/ash/root_window_controller.cc
diff options
context:
space:
mode:
authorvarkha@chromium.org <varkha@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-07-19 08:25:39 +0000
committervarkha@chromium.org <varkha@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-07-19 08:25:39 +0000
commit7115bd3088eab75d350801502d7d20d17bced78c (patch)
treebc975355f94a5ef5f92b71ed6d6066734442c5da /ash/root_window_controller.cc
parent7eb8cbf5129c9e62f8b92bcc658248270b897e58 (diff)
downloadchromium_src-7115bd3088eab75d350801502d7d20d17bced78c.zip
chromium_src-7115bd3088eab75d350801502d7d20d17bced78c.tar.gz
chromium_src-7115bd3088eab75d350801502d7d20d17bced78c.tar.bz2
Dock with non-zero width
BUG=233337 BUG=247085 This CL builds on https://codereview.chromium.org/13896026/ and adds a non-zero width dock. It is possible to add windows to the dock and it will update its width (insetting the workspace). Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=212306 Review URL: https://chromiumcodereview.appspot.com/15719012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@212535 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ash/root_window_controller.cc')
-rw-r--r--ash/root_window_controller.cc12
1 files changed, 11 insertions, 1 deletions
diff --git a/ash/root_window_controller.cc b/ash/root_window_controller.cc
index 3e46f50..7039d56 100644
--- a/ash/root_window_controller.cc
+++ b/ash/root_window_controller.cc
@@ -302,8 +302,11 @@ void RootWindowController::ShowLauncher() {
void RootWindowController::OnLauncherCreated() {
if (panel_layout_manager_)
panel_layout_manager_->SetLauncher(shelf_->launcher());
- if (docked_layout_manager_)
+ if (docked_layout_manager_) {
docked_layout_manager_->SetLauncher(shelf_->launcher());
+ if (shelf_->shelf_layout_manager())
+ docked_layout_manager_->AddObserver(shelf_->shelf_layout_manager());
+ }
}
void RootWindowController::UpdateAfterLoginStatusChange(
@@ -353,6 +356,13 @@ void RootWindowController::CloseChildWindows() {
panel_layout_manager_->Shutdown();
panel_layout_manager_ = NULL;
}
+ // docked_layout_manager_ needs to be shut down before windows are destroyed.
+ if (docked_layout_manager_) {
+ if (shelf_->shelf_layout_manager())
+ docked_layout_manager_->RemoveObserver(shelf_->shelf_layout_manager());
+ docked_layout_manager_->Shutdown();
+ docked_layout_manager_ = NULL;
+ }
// TODO(harrym): Remove when Status Area Widget is a child view.
shelf_->ShutdownStatusAreaWidget();