| Index: ash/root_window_controller.cc
|
| diff --git a/ash/root_window_controller.cc b/ash/root_window_controller.cc
|
| index 0e3b45245fb63ab679e1e545904c039016341778..3b99a7039b6502457a247300b99e7097b66b5cdb 100644
|
| --- a/ash/root_window_controller.cc
|
| +++ b/ash/root_window_controller.cc
|
| @@ -25,6 +25,7 @@
|
| #include "ash/touch/touch_observer_hud.h"
|
| #include "ash/wm/base_layout_manager.h"
|
| #include "ash/wm/boot_splash_screen.h"
|
| +#include "ash/wm/dock/dock_layout_manager.h"
|
| #include "ash/wm/panels/panel_layout_manager.h"
|
| #include "ash/wm/property_util.h"
|
| #include "ash/wm/root_window_layout_manager.h"
|
| @@ -111,6 +112,7 @@ void ReparentAllWindows(aura::RootWindow* src, aura::RootWindow* dst) {
|
| // Set of windows to move.
|
| const int kContainerIdsToMove[] = {
|
| internal::kShellWindowId_DefaultContainer,
|
| + internal::kShellWindowId_DockContainer,
|
| internal::kShellWindowId_PanelContainer,
|
| internal::kShellWindowId_AlwaysOnTopContainer,
|
| internal::kShellWindowId_SystemModalContainer,
|
| @@ -167,6 +169,7 @@ RootWindowController::RootWindowController(aura::RootWindow* root_window)
|
| : root_window_(root_window),
|
| root_window_layout_(NULL),
|
| shelf_(NULL),
|
| + dock_layout_manager_(NULL),
|
| panel_layout_manager_(NULL),
|
| touch_observer_hud_(NULL) {
|
| SetRootWindowController(root_window, this);
|
| @@ -272,6 +275,15 @@ void RootWindowController::InitForPrimaryDisplay() {
|
| shelf_.reset(new ash::ShelfWidget(
|
| shelf_container, status_container, workspace_controller()));
|
|
|
| + // Create Dock layout manager
|
| + aura::Window* dock_container = GetContainer(
|
| + internal::kShellWindowId_DockContainer);
|
| + dock_layout_manager_ =
|
| + new internal::DockLayoutManager(dock_container);
|
| + dock_container_handler_.reset(
|
| + new ToplevelWindowEventHandler(dock_container));
|
| + dock_container->SetLayoutManager(dock_layout_manager_);
|
| +
|
| // Create Panel layout manager
|
| aura::Window* panel_container = GetContainer(
|
| internal::kShellWindowId_PanelContainer);
|
| @@ -322,6 +334,8 @@ void RootWindowController::CreateSystemBackground(
|
| void RootWindowController::OnLauncherCreated() {
|
| if (panel_layout_manager_)
|
| panel_layout_manager_->SetLauncher(shelf_->launcher());
|
| + if (dock_layout_manager_)
|
| + dock_layout_manager_->SetLauncher(shelf_->launcher());
|
| }
|
|
|
| void RootWindowController::ShowLauncher() {
|
| @@ -366,6 +380,10 @@ void RootWindowController::CloseChildWindows() {
|
| panel_layout_manager_->Shutdown();
|
| panel_layout_manager_ = NULL;
|
| }
|
| + if (dock_layout_manager_) {
|
| + dock_layout_manager_->Shutdown();
|
| + dock_layout_manager_ = NULL;
|
| + }
|
|
|
| // TODO(harrym): Remove when Status Area Widget is a child view.
|
| if (shelf_)
|
| @@ -533,6 +551,12 @@ void RootWindowController::CreateContainersInRootWindow(
|
| always_on_top_container);
|
| SetUsesScreenCoordinates(always_on_top_container);
|
|
|
| + aura::Window* dock_container = CreateContainer(
|
| + kShellWindowId_DockContainer,
|
| + "DockContainer",
|
| + non_lock_screen_containers);
|
| + SetUsesScreenCoordinates(dock_container);
|
| +
|
| aura::Window* panel_container = CreateContainer(
|
| kShellWindowId_PanelContainer,
|
| "PanelContainer",
|
|
|