Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "ash/shell.h" | 5 #include "ash/shell.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <string> | 8 #include <string> |
| 9 #include <utility> | 9 #include <utility> |
| 10 | 10 |
| (...skipping 13 matching lines...) Expand all Loading... | |
| 24 #include "ash/display/screen_position_controller.h" | 24 #include "ash/display/screen_position_controller.h" |
| 25 #include "ash/display/window_tree_host_manager.h" | 25 #include "ash/display/window_tree_host_manager.h" |
| 26 #include "ash/drag_drop/drag_drop_controller.h" | 26 #include "ash/drag_drop/drag_drop_controller.h" |
| 27 #include "ash/first_run/first_run_helper_impl.h" | 27 #include "ash/first_run/first_run_helper_impl.h" |
| 28 #include "ash/focus_cycler.h" | 28 #include "ash/focus_cycler.h" |
| 29 #include "ash/frame/custom_frame_view_ash.h" | 29 #include "ash/frame/custom_frame_view_ash.h" |
| 30 #include "ash/gpu_support.h" | 30 #include "ash/gpu_support.h" |
| 31 #include "ash/high_contrast/high_contrast_controller.h" | 31 #include "ash/high_contrast/high_contrast_controller.h" |
| 32 #include "ash/host/ash_window_tree_host_init_params.h" | 32 #include "ash/host/ash_window_tree_host_init_params.h" |
| 33 #include "ash/ime/input_method_event_handler.h" | 33 #include "ash/ime/input_method_event_handler.h" |
| 34 #include "ash/keyboard/keyboard_ui.h" | |
| 34 #include "ash/keyboard_uma_event_filter.h" | 35 #include "ash/keyboard_uma_event_filter.h" |
| 35 #include "ash/magnifier/magnification_controller.h" | 36 #include "ash/magnifier/magnification_controller.h" |
| 36 #include "ash/magnifier/partial_magnification_controller.h" | 37 #include "ash/magnifier/partial_magnification_controller.h" |
| 37 #include "ash/media_delegate.h" | 38 #include "ash/media_delegate.h" |
| 39 #include "ash/mojo_shell.h" | |
| 38 #include "ash/new_window_delegate.h" | 40 #include "ash/new_window_delegate.h" |
| 39 #include "ash/root_window_controller.h" | 41 #include "ash/root_window_controller.h" |
| 40 #include "ash/session/session_state_delegate.h" | 42 #include "ash/session/session_state_delegate.h" |
| 41 #include "ash/shelf/app_list_shelf_item_delegate.h" | 43 #include "ash/shelf/app_list_shelf_item_delegate.h" |
| 42 #include "ash/shelf/shelf_delegate.h" | 44 #include "ash/shelf/shelf_delegate.h" |
| 43 #include "ash/shelf/shelf_item_delegate.h" | 45 #include "ash/shelf/shelf_item_delegate.h" |
| 44 #include "ash/shelf/shelf_item_delegate_manager.h" | 46 #include "ash/shelf/shelf_item_delegate_manager.h" |
| 45 #include "ash/shelf/shelf_layout_manager.h" | 47 #include "ash/shelf/shelf_layout_manager.h" |
| 46 #include "ash/shelf/shelf_model.h" | 48 #include "ash/shelf/shelf_model.h" |
| 47 #include "ash/shelf/shelf_widget.h" | 49 #include "ash/shelf/shelf_widget.h" |
| (...skipping 389 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 437 (*iter)->shelf()->CreateShelf(); | 439 (*iter)->shelf()->CreateShelf(); |
| 438 } | 440 } |
| 439 | 441 |
| 440 void Shell::OnShelfCreatedForRootWindow(aura::Window* root_window) { | 442 void Shell::OnShelfCreatedForRootWindow(aura::Window* root_window) { |
| 441 FOR_EACH_OBSERVER(ShellObserver, | 443 FOR_EACH_OBSERVER(ShellObserver, |
| 442 observers_, | 444 observers_, |
| 443 OnShelfCreatedForRootWindow(root_window)); | 445 OnShelfCreatedForRootWindow(root_window)); |
| 444 } | 446 } |
| 445 | 447 |
| 446 void Shell::CreateKeyboard() { | 448 void Shell::CreateKeyboard() { |
| 449 if (GetMojoShell()) | |
| 450 return; | |
| 447 // TODO(bshe): Primary root window controller may not be the controller to | 451 // TODO(bshe): Primary root window controller may not be the controller to |
| 448 // attach virtual keyboard. See http://crbug.com/303429 | 452 // attach virtual keyboard. See http://crbug.com/303429 |
| 449 InitKeyboard(); | 453 InitKeyboard(); |
| 450 GetPrimaryRootWindowController()-> | 454 GetPrimaryRootWindowController()-> |
| 451 ActivateKeyboard(keyboard::KeyboardController::GetInstance()); | 455 ActivateKeyboard(keyboard::KeyboardController::GetInstance()); |
| 452 } | 456 } |
| 453 | 457 |
| 454 void Shell::DeactivateKeyboard() { | 458 void Shell::DeactivateKeyboard() { |
| 459 keyboard_ui_->Hide(); | |
| 460 if (GetMojoShell()) | |
| 461 return; | |
| 455 if (keyboard::KeyboardController::GetInstance()) { | 462 if (keyboard::KeyboardController::GetInstance()) { |
| 456 RootWindowControllerList controllers = GetAllRootWindowControllers(); | 463 RootWindowControllerList controllers = GetAllRootWindowControllers(); |
| 457 for (RootWindowControllerList::iterator iter = controllers.begin(); | 464 for (RootWindowControllerList::iterator iter = controllers.begin(); |
| 458 iter != controllers.end(); ++iter) { | 465 iter != controllers.end(); ++iter) { |
| 459 (*iter)->DeactivateKeyboard(keyboard::KeyboardController::GetInstance()); | 466 (*iter)->DeactivateKeyboard(keyboard::KeyboardController::GetInstance()); |
| 460 } | 467 } |
| 461 } | 468 } |
| 462 keyboard::KeyboardController::ResetInstance(nullptr); | 469 keyboard::KeyboardController::ResetInstance(nullptr); |
| 463 } | 470 } |
| 464 | 471 |
| (...skipping 573 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1038 base::Bind(&SystemTrayDelegate::SignOut, | 1045 base::Bind(&SystemTrayDelegate::SignOut, |
| 1039 base::Unretained(system_tray_delegate_.get())))); | 1046 base::Unretained(system_tray_delegate_.get())))); |
| 1040 | 1047 |
| 1041 // Create TouchTransformerController before | 1048 // Create TouchTransformerController before |
| 1042 // WindowTreeHostManager::InitDisplays() | 1049 // WindowTreeHostManager::InitDisplays() |
| 1043 // since TouchTransformerController listens on | 1050 // since TouchTransformerController listens on |
| 1044 // WindowTreeHostManager::Observer::OnDisplaysInitialized(). | 1051 // WindowTreeHostManager::Observer::OnDisplaysInitialized(). |
| 1045 touch_transformer_controller_.reset(new TouchTransformerController()); | 1052 touch_transformer_controller_.reset(new TouchTransformerController()); |
| 1046 #endif // defined(OS_CHROMEOS) | 1053 #endif // defined(OS_CHROMEOS) |
| 1047 | 1054 |
| 1055 keyboard_ui_ = KeyboardUI::Create(); | |
| 1056 | |
|
sadrul
2016/02/10 23:57:14
I wonder if ShellInitParams could include a Keyboa
sky
2016/02/11 00:39:47
Both of your suggestions are certainly doable. If
sadrul
2016/02/11 14:36:07
Even in the complete mustash world, it would be pr
| |
| 1048 window_tree_host_manager_->InitHosts(); | 1057 window_tree_host_manager_->InitHosts(); |
| 1049 | 1058 |
| 1050 #if defined(OS_CHROMEOS) | 1059 #if defined(OS_CHROMEOS) |
| 1051 // Needs to be created after InitDisplays() since it may cause the virtual | 1060 // Needs to be created after InitDisplays() since it may cause the virtual |
| 1052 // keyboard to be deployed. | 1061 // keyboard to be deployed. |
| 1053 virtual_keyboard_controller_.reset(new VirtualKeyboardController); | 1062 virtual_keyboard_controller_.reset(new VirtualKeyboardController); |
| 1054 #endif // defined(OS_CHROMEOS) | 1063 #endif // defined(OS_CHROMEOS) |
| 1055 | 1064 |
| 1056 // It needs to be created after RootWindowController has been created | 1065 // It needs to be created after RootWindowController has been created |
| 1057 // (which calls OnWindowResized has been called, otherwise the | 1066 // (which calls OnWindowResized has been called, otherwise the |
| (...skipping 25 matching lines...) Expand all Loading... | |
| 1083 // order to create mirror window. Run it after the main message loop | 1092 // order to create mirror window. Run it after the main message loop |
| 1084 // is started. | 1093 // is started. |
| 1085 display_manager_->CreateMirrorWindowAsyncIfAny(); | 1094 display_manager_->CreateMirrorWindowAsyncIfAny(); |
| 1086 | 1095 |
| 1087 FOR_EACH_OBSERVER(ShellObserver, observers_, OnShellInitialized()); | 1096 FOR_EACH_OBSERVER(ShellObserver, observers_, OnShellInitialized()); |
| 1088 | 1097 |
| 1089 user_metrics_recorder_->OnShellInitialized(); | 1098 user_metrics_recorder_->OnShellInitialized(); |
| 1090 } | 1099 } |
| 1091 | 1100 |
| 1092 void Shell::InitKeyboard() { | 1101 void Shell::InitKeyboard() { |
| 1102 if (GetMojoShell()) | |
| 1103 return; | |
|
sadrul
2016/02/10 23:57:14
Similarly, would it make sense to include a flag t
| |
| 1104 | |
| 1093 if (keyboard::IsKeyboardEnabled()) { | 1105 if (keyboard::IsKeyboardEnabled()) { |
| 1094 if (keyboard::KeyboardController::GetInstance()) { | 1106 if (keyboard::KeyboardController::GetInstance()) { |
| 1095 RootWindowControllerList controllers = GetAllRootWindowControllers(); | 1107 RootWindowControllerList controllers = GetAllRootWindowControllers(); |
| 1096 for (RootWindowControllerList::iterator iter = controllers.begin(); | 1108 for (RootWindowControllerList::iterator iter = controllers.begin(); |
| 1097 iter != controllers.end(); ++iter) { | 1109 iter != controllers.end(); ++iter) { |
| 1098 (*iter)->DeactivateKeyboard( | 1110 (*iter)->DeactivateKeyboard( |
| 1099 keyboard::KeyboardController::GetInstance()); | 1111 keyboard::KeyboardController::GetInstance()); |
| 1100 } | 1112 } |
| 1101 } | 1113 } |
| 1102 keyboard::KeyboardController::ResetInstance( | 1114 keyboard::KeyboardController::ResetInstance( |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1170 | 1182 |
| 1171 void Shell::OnWindowActivated( | 1183 void Shell::OnWindowActivated( |
| 1172 aura::client::ActivationChangeObserver::ActivationReason reason, | 1184 aura::client::ActivationChangeObserver::ActivationReason reason, |
| 1173 aura::Window* gained_active, | 1185 aura::Window* gained_active, |
| 1174 aura::Window* lost_active) { | 1186 aura::Window* lost_active) { |
| 1175 if (gained_active) | 1187 if (gained_active) |
| 1176 target_root_window_ = gained_active->GetRootWindow(); | 1188 target_root_window_ = gained_active->GetRootWindow(); |
| 1177 } | 1189 } |
| 1178 | 1190 |
| 1179 } // namespace ash | 1191 } // namespace ash |
| OLD | NEW |