| Index: ash/system/chromeos/rotation/tray_rotation_lock.cc
|
| diff --git a/ash/system/chromeos/rotation/tray_rotation_lock.cc b/ash/system/chromeos/rotation/tray_rotation_lock.cc
|
| index 293299ad20a1a41107f35bd1bca5b13eaeef9563..c5026f0a39a6223c60ec7e3421ea2c77735a36a3 100644
|
| --- a/ash/system/chromeos/rotation/tray_rotation_lock.cc
|
| +++ b/ash/system/chromeos/rotation/tray_rotation_lock.cc
|
| @@ -55,16 +55,9 @@ RotationLockDefaultView::~RotationLockDefaultView() {
|
| bool RotationLockDefaultView::PerformAction(const ui::Event& event) {
|
| MaximizeModeController* maximize_mode_controller = Shell::GetInstance()->
|
| maximize_mode_controller();
|
| - bool rotation_locked = !maximize_mode_controller->rotation_locked();
|
| - maximize_mode_controller->set_rotation_locked(rotation_locked);
|
| -
|
| + maximize_mode_controller->SetRotationLocked(
|
| + !maximize_mode_controller->rotation_locked());
|
| UpdateImage();
|
| -
|
| - // RotationLockDefaultView can only be created by a TrayRotationLock. The
|
| - // owner needs to be told of the action so that it can update its visibility.
|
| - static_cast<TrayRotationLock*>(owner())->tray_view()->
|
| - SetVisible(rotation_locked);
|
| -
|
| return true;
|
| }
|
|
|
| @@ -115,6 +108,10 @@ TrayRotationLock::~TrayRotationLock() {
|
| Shell::GetInstance()->RemoveShellObserver(this);
|
| }
|
|
|
| +void TrayRotationLock::OnRotationLockChanged(bool rotation_locked) {
|
| + tray_view()->SetVisible(ShouldBeVisible());
|
| +}
|
| +
|
| views::View* TrayRotationLock::CreateDefaultView(user::LoginStatus status) {
|
| if (on_primary_display_)
|
| return new tray::RotationLockDefaultView(this);
|
| @@ -124,13 +121,19 @@ views::View* TrayRotationLock::CreateDefaultView(user::LoginStatus status) {
|
| void TrayRotationLock::OnMaximizeModeStarted() {
|
| tray_view()->SetVisible(
|
| Shell::GetInstance()->maximize_mode_controller()->rotation_locked());
|
| + Shell::GetInstance()->maximize_mode_controller()->AddObserver(this);
|
| }
|
|
|
| void TrayRotationLock::OnMaximizeModeEnded() {
|
| tray_view()->SetVisible(false);
|
| + Shell::GetInstance()->maximize_mode_controller()->RemoveObserver(this);
|
| }
|
|
|
| bool TrayRotationLock::GetInitialVisibility() {
|
| + return ShouldBeVisible();
|
| +}
|
| +
|
| +bool TrayRotationLock::ShouldBeVisible() {
|
| return on_primary_display_ &&
|
| Shell::GetInstance()->IsMaximizeModeWindowManagerEnabled() &&
|
| Shell::GetInstance()->maximize_mode_controller()->rotation_locked();
|
|
|