| Index: ash/common/wm_shell.cc
|
| diff --git a/ash/common/wm_shell.cc b/ash/common/wm_shell.cc
|
| index 40155129d13f97576d0bec8745c7ba4119b13ea4..690780d9c621b30e78606fab9a79d8c76cd6f11d 100644
|
| --- a/ash/common/wm_shell.cc
|
| +++ b/ash/common/wm_shell.cc
|
| @@ -153,11 +153,6 @@ void WmShell::CreateShelf() {
|
| root_window->GetRootWindowController()->CreateShelf();
|
| }
|
|
|
| -void WmShell::ShowShelf() {
|
| - for (WmWindow* root_window : GetAllRootWindows())
|
| - root_window->GetRootWindowController()->ShowShelf();
|
| -}
|
| -
|
| void WmShell::CreateShelfDelegate() {
|
| // May be called multiple times as shelves are created and destroyed.
|
| if (shelf_delegate_)
|
| @@ -274,6 +269,7 @@ WmShell::WmShell(std::unique_ptr<ShellDelegate> shell_delegate)
|
| window_cycle_controller_(base::MakeUnique<WindowCycleController>()),
|
| window_selector_controller_(
|
| base::MakeUnique<WindowSelectorController>()) {
|
| + session_controller_->AddSessionStateObserver(this);
|
|
|
| prefs::mojom::PreferencesManagerPtr pref_manager_ptr;
|
| // Can be null in tests.
|
| @@ -284,7 +280,9 @@ WmShell::WmShell(std::unique_ptr<ShellDelegate> shell_delegate)
|
| pref_store_ = new preferences::PrefObserverStore(std::move(pref_manager_ptr));
|
| }
|
|
|
| -WmShell::~WmShell() {}
|
| +WmShell::~WmShell() {
|
| + session_controller_->RemoveSessionStateObserver(this);
|
| +}
|
|
|
| RootWindowController* WmShell::GetPrimaryRootWindowController() {
|
| return GetPrimaryRootWindow()->GetRootWindowController();
|
| @@ -418,4 +416,11 @@ void WmShell::SetAcceleratorController(
|
| accelerator_controller_ = std::move(accelerator_controller);
|
| }
|
|
|
| +void WmShell::SessionStateChanged(session_manager::SessionState state) {
|
| + // Create the shelf when a session becomes active. It's safe to do this
|
| + // multiple times (e.g. initial login vs. multiprofile add session).
|
| + if (state == session_manager::SessionState::ACTIVE)
|
| + CreateShelf();
|
| +}
|
| +
|
| } // namespace ash
|
|
|