Chromium Code Reviews| 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..d05702da336b8dbbdfb83d8e55277c017544558a 100644 |
| --- a/ash/system/chromeos/rotation/tray_rotation_lock.cc |
| +++ b/ash/system/chromeos/rotation/tray_rotation_lock.cc |
| @@ -56,15 +56,8 @@ bool RotationLockDefaultView::PerformAction(const ui::Event& event) { |
| MaximizeModeController* maximize_mode_controller = Shell::GetInstance()-> |
| maximize_mode_controller(); |
| bool rotation_locked = !maximize_mode_controller->rotation_locked(); |
|
flackr
2014/05/30 00:47:24
nit: No need to store value, as it's only used onc
jonross
2014/05/30 14:52:44
Done.
|
| - maximize_mode_controller->set_rotation_locked(rotation_locked); |
| - |
| + maximize_mode_controller->SetRotationLocked(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(); |