Index: ash/common/wm_shell.cc |
diff --git a/ash/common/wm_shell.cc b/ash/common/wm_shell.cc |
index f0cb0180e11ac02d99348366cea072d57d3c534a..af91999ec4ed3858853735295e70a25c34b84dd2 100644 |
--- a/ash/common/wm_shell.cc |
+++ b/ash/common/wm_shell.cc |
@@ -9,6 +9,7 @@ |
#include "ash/common/accessibility_delegate.h" |
#include "ash/common/focus_cycler.h" |
#include "ash/common/keyboard/keyboard_ui.h" |
+#include "ash/common/shelf/app_list_shelf_item_delegate.h" |
#include "ash/common/shelf/shelf_model.h" |
#include "ash/common/shell_delegate.h" |
#include "ash/common/shell_window_ids.h" |
@@ -54,11 +55,17 @@ void WmShell::Initialize() { |
accessibility_delegate_.reset(delegate_->CreateAccessibilityDelegate()); |
media_delegate_.reset(delegate_->CreateMediaDelegate()); |
toast_manager_.reset(new ToastManager); |
+ |
+ // Create the app list item in the shelf data model. |
+ AppListShelfItemDelegate::CreateAppListItemAndDelegate(shelf_model_.get()); |
} |
void WmShell::Shutdown() { |
// Accesses WmShell in its destructor. |
accessibility_delegate_.reset(); |
+ // ShelfItemDelegate subclasses it owns have complex cleanup to run, so |
msw
2016/07/21 21:30:53
Is this still needed? Don't stress too much lookin
James Cook
2016/07/22 01:20:08
My worries about ARC items are the same as in the
msw
2016/07/22 01:49:51
Do you mean ArcAppDeferredLauncherItemController a
|
+ // explicitly shutdown early. |
+ shelf_model_->Shutdown(); |
} |
void WmShell::OnMaximizeModeStarted() { |
@@ -103,14 +110,14 @@ void WmShell::RemoveLockStateObserver(LockStateObserver* observer) { |
WmShell::WmShell(std::unique_ptr<ShellDelegate> shell_delegate) |
: delegate_(std::move(shell_delegate)), |
focus_cycler_(new FocusCycler), |
- shelf_model_(new ShelfModel), |
+ shelf_model_(new ShelfModel), // Must create before ShelfDelegate. |
system_tray_notifier_(new SystemTrayNotifier), |
+ window_cycle_controller_(new WindowCycleController), |
window_selector_controller_(new WindowSelectorController) { |
#if defined(OS_CHROMEOS) |
brightness_control_delegate_.reset(new system::BrightnessControllerChromeos); |
keyboard_brightness_control_delegate_.reset(new KeyboardBrightnessController); |
#endif |
- window_cycle_controller_.reset(new WindowCycleController()); |
} |
WmShell::~WmShell() {} |