Chromium Code Reviews| Index: ash/root_window_controller.cc |
| diff --git a/ash/root_window_controller.cc b/ash/root_window_controller.cc |
| index 072608c6874ed88291b9dc5b2b334f0f05926b94..5d06efd0affad4b7162fcef9afe25712802a2f1e 100644 |
| --- a/ash/root_window_controller.cc |
| +++ b/ash/root_window_controller.cc |
| @@ -400,15 +400,13 @@ void RootWindowController::CloseChildWindows() { |
| // down associated layout managers. |
| DeactivateKeyboard(Shell::GetInstance()->keyboard_controller()); |
| - if (!shelf_.get()) |
| - return; |
| // panel_layout_manager_ needs to be shut down before windows are destroyed. |
| if (panel_layout_manager_) { |
| 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_ && docked_layout_manager_) { |
| if (shelf_->shelf_layout_manager()) |
| docked_layout_manager_->RemoveObserver(shelf_->shelf_layout_manager()); |
| docked_layout_manager_->Shutdown(); |
| @@ -418,10 +416,12 @@ void RootWindowController::CloseChildWindows() { |
| aura::client::SetDragDropClient(root_window_.get(), NULL); |
| // TODO(harrym): Remove when Status Area Widget is a child view. |
| - shelf_->ShutdownStatusAreaWidget(); |
| + if (shelf_) { |
| + shelf_->ShutdownStatusAreaWidget(); |
| - if (shelf_->shelf_layout_manager()) |
| - shelf_->shelf_layout_manager()->PrepareForShutdown(); |
| + if (shelf_->shelf_layout_manager()) |
| + shelf_->shelf_layout_manager()->PrepareForShutdown(); |
| + } |
|
oshima
2013/11/01 00:09:02
can you rebase?
bshe
2013/11/12 15:28:33
Done.
|
| // Close background widget first as it depends on tooltip. |
| wallpaper_controller_.reset(); |
| @@ -528,9 +528,11 @@ void RootWindowController::ActivateKeyboard( |
| return; |
| } |
| DCHECK(keyboard_controller); |
| - keyboard_controller->AddObserver(shelf()->shelf_layout_manager()); |
| - keyboard_controller->AddObserver(panel_layout_manager_); |
| - keyboard_controller->AddObserver(docked_layout_manager_); |
| + if (!keyboard::IsKeyboardUsabilityTestEnabled()) { |
| + keyboard_controller->AddObserver(shelf()->shelf_layout_manager()); |
| + keyboard_controller->AddObserver(panel_layout_manager_); |
| + keyboard_controller->AddObserver(docked_layout_manager_); |
| + } |
| aura::Window* parent = root_window(); |
| aura::Window* keyboard_container = |
| keyboard_controller->GetContainerWindow(); |
| @@ -551,9 +553,11 @@ void RootWindowController::DeactivateKeyboard( |
| keyboard_controller->GetContainerWindow(); |
| if (keyboard_container->GetRootWindow() == root_window()) { |
| root_window()->RemoveChild(keyboard_container); |
| - keyboard_controller->RemoveObserver(shelf()->shelf_layout_manager()); |
| - keyboard_controller->RemoveObserver(panel_layout_manager_); |
| - keyboard_controller->RemoveObserver(docked_layout_manager_); |
| + if (!keyboard::IsKeyboardUsabilityTestEnabled()) { |
| + keyboard_controller->RemoveObserver(shelf()->shelf_layout_manager()); |
| + keyboard_controller->RemoveObserver(panel_layout_manager_); |
| + keyboard_controller->RemoveObserver(docked_layout_manager_); |
| + } |
| } |
| } |
| @@ -578,13 +582,16 @@ RootWindowController::RootWindowController(aura::RootWindow* root_window) |
| void RootWindowController::Init(RootWindowType root_window_type, |
| bool first_run_after_boot) { |
| - Shell::GetInstance()->InitRootWindow(root_window_.get()); |
| + Shell* shell = Shell::GetInstance(); |
| + shell->InitRootWindow(root_window_.get()); |
| root_window_->SetCursor(ui::kCursorPointer); |
| CreateContainersInRootWindow(root_window_.get()); |
| - if (root_window_type == VIRTUAL_KEYBOARD) |
| + if (root_window_type == VIRTUAL_KEYBOARD) { |
| + shell->InitKeyboard(this); |
| return; |
| + } |
| CreateSystemBackground(first_run_after_boot); |
| @@ -596,12 +603,12 @@ void RootWindowController::Init(RootWindowType root_window_type, |
| GetSystemModalLayoutManager(NULL)->CreateModalBackground(); |
| } |
| - Shell* shell = Shell::GetInstance(); |
| shell->AddShellObserver(this); |
| if (root_window_type == PRIMARY) { |
| root_window_layout()->OnWindowResized(); |
| - shell->InitKeyboard(this); |
| + if (!keyboard::IsKeyboardUsabilityTestEnabled()) |
|
oshima
2013/11/01 00:09:02
The name of this flag is confusing. Can we rename
bshe
2013/11/12 15:28:33
Do you mean change --keyboard-usability-test to --
|
| + shell->InitKeyboard(this); |
| } else { |
| root_window_layout()->OnWindowResized(); |
| shell->desktop_background_controller()->OnRootWindowAdded( |