Index: ash/shell.cc |
diff --git a/ash/shell.cc b/ash/shell.cc |
index 8a2f524bc7b8c4d54012fc2a9ce39ade41e784b2..45c464887f8091792aa7a0ef59526bc3264b75bf 100644 |
--- a/ash/shell.cc |
+++ b/ash/shell.cc |
@@ -23,7 +23,6 @@ |
#include "ash/display/mouse_cursor_event_filter.h" |
#include "ash/display/resolution_notification_controller.h" |
#include "ash/display/screen_position_controller.h" |
-#include "ash/display/virtual_keyboard_window_controller.h" |
#include "ash/drag_drop/drag_drop_controller.h" |
#include "ash/first_run/first_run_helper_impl.h" |
#include "ash/focus_cycler.h" |
@@ -338,14 +337,16 @@ void Shell::SetDisplayWorkAreaInsets(Window* contains, |
} |
void Shell::OnLoginStateChanged(user::LoginStatus status) { |
+ if (status != user::LOGGED_IN_NONE) { |
+ // TODO(bshe): Primary root window controller may not be the controller to |
+ // attach virtual keyboard. See http://crbug.com/303429 |
+ InitKeyboard(GetPrimaryRootWindowController()); |
+ GetPrimaryRootWindowController()->ActivateKeyboard( |
+ keyboard_controller_.get()); |
+ } |
FOR_EACH_OBSERVER(ShellObserver, observers_, OnLoginStateChanged(status)); |
} |
-void Shell::OnLoginUserProfilePrepared() { |
- CreateLauncher(); |
- CreateKeyboard(); |
-} |
- |
void Shell::UpdateAfterLoginStatusChange(user::LoginStatus status) { |
RootWindowControllerList controllers = GetAllRootWindowControllers(); |
for (RootWindowControllerList::iterator iter = controllers.begin(); |
@@ -380,19 +381,6 @@ void Shell::CreateLauncher() { |
(*iter)->shelf()->CreateLauncher(); |
} |
-void Shell::CreateKeyboard() { |
- // TODO(bshe): Primary root window controller may not be the controller to |
- // attach virtual keyboard. See http://crbug.com/303429 |
- InitKeyboard(); |
- if (keyboard::IsKeyboardUsabilityExperimentEnabled()) { |
- display_controller()->virtual_keyboard_window_controller()-> |
- ActivateKeyboard(keyboard_controller_.get()); |
- } else { |
- GetPrimaryRootWindowController()-> |
- ActivateKeyboard(keyboard_controller_.get()); |
- } |
-} |
- |
void Shell::ShowLauncher() { |
RootWindowControllerList controllers = GetAllRootWindowControllers(); |
for (RootWindowControllerList::iterator iter = controllers.begin(); |
@@ -631,7 +619,6 @@ Shell::~Shell() { |
// Destroy all child windows including widgets. |
display_controller_->CloseChildWindows(); |
- display_controller_->CloseNonDesktopDisplay(); |
// Destroy SystemTrayNotifier after destroying SystemTray as TrayItems |
// needs to remove observers from it. |
@@ -706,7 +693,7 @@ void Shell::Init() { |
CommandLine* command_line = CommandLine::ForCurrentProcess(); |
delegate_->PreInit(); |
- if (keyboard::IsKeyboardUsabilityExperimentEnabled()) { |
+ if (command_line->HasSwitch(keyboard::switches::kKeyboardUsabilityTest)) { |
display_manager_->SetSecondDisplayMode( |
internal::DisplayManager::VIRTUAL_KEYBOARD); |
} |
@@ -929,7 +916,7 @@ void Shell::Init() { |
weak_display_manager_factory_->GetWeakPtr())); |
} |
-void Shell::InitKeyboard() { |
+void Shell::InitKeyboard(internal::RootWindowController* root) { |
if (keyboard::IsKeyboardEnabled()) { |
if (keyboard_controller_.get()) { |
RootWindowControllerList controllers = GetAllRootWindowControllers(); |