Chromium Code Reviews| Index: ash/common/wm_shell.cc |
| diff --git a/ash/common/wm_shell.cc b/ash/common/wm_shell.cc |
| index 7f4f6838c81b86ac8ba0a2454a7f6970164a5456..4580f99b9ae90401975520c9a23bf760bb4212d6 100644 |
| --- a/ash/common/wm_shell.cc |
| +++ b/ash/common/wm_shell.cc |
| @@ -151,11 +151,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_) |
| @@ -272,9 +267,12 @@ WmShell::WmShell(std::unique_ptr<ShellDelegate> shell_delegate) |
| keyboard_brightness_control_delegate_.reset(new KeyboardBrightnessController); |
| vpn_list_ = base::MakeUnique<VpnList>(); |
| #endif |
| + session_controller_->AddSessionStateObserver(this); |
| } |
| -WmShell::~WmShell() {} |
| +WmShell::~WmShell() { |
| + session_controller_->RemoveSessionStateObserver(this); |
| +} |
| WmRootWindowController* WmShell::GetPrimaryRootWindowController() { |
| return GetPrimaryRootWindow()->GetRootWindowController(); |
| @@ -415,4 +413,14 @@ void WmShell::SetAcceleratorController( |
| accelerator_controller_ = std::move(accelerator_controller); |
| } |
| +void WmShell::SessionStateChanged(session_manager::SessionState state) { |
| + // Create the shelf when the first session becomes active. There's no need to |
| + // recreate it when multiprofile sessions are added. |
| + if (state != session_manager::SessionState::ACTIVE || first_session_active_) |
| + return; |
| + |
| + WmShell::Get()->CreateShelf(); |
|
msw
2016/12/20 15:37:30
Isn't WmShell::Get() equivalent to |this|, and not
James Cook
2016/12/20 17:27:19
Whoops, done.
|
| + first_session_active_ = true; |
|
msw
2016/12/20 15:37:30
Should this ever be reset to false, eg. when the u
James Cook
2016/12/20 17:27:19
Changed to always attempt to create the shelf (whi
|
| +} |
| + |
| } // namespace ash |