Index: ash/rotator/screen_rotation_animator.cc |
diff --git a/ash/rotator/screen_rotation_animator.cc b/ash/rotator/screen_rotation_animator.cc |
index 9b746b6821a04ea20bab0f03aca94f018b063812..742ade963d94756d7a4eb2405df79a2c6a475c8c 100644 |
--- a/ash/rotator/screen_rotation_animator.cc |
+++ b/ash/rotator/screen_rotation_animator.cc |
@@ -12,6 +12,7 @@ |
#include "ash/display/display_info.h" |
#include "ash/display/display_manager.h" |
#include "ash/rotator/screen_rotation_animation.h" |
+#include "ash/session/session_state_delegate.h" |
#include "ash/shell.h" |
#include "base/command_line.h" |
#include "base/time/time.h" |
@@ -280,10 +281,19 @@ ScreenRotationAnimator::~ScreenRotationAnimator() { |
} |
bool ScreenRotationAnimator::CanAnimate() const { |
+ // Animations are currently broken on the login screen. |
+ // (chrome-os-partners:40118). Disabling the animations on this screen for |
+ // M-43 |
return Shell::GetInstance() |
- ->display_manager() |
- ->GetDisplayForId(display_id_) |
- .is_valid(); |
+ ->display_manager() |
+ ->GetDisplayForId(display_id_) |
+ .is_valid() && |
+ Shell::GetInstance() |
+ ->session_state_delegate() |
+ ->IsActiveUserSessionStarted() && |
+ !Shell::GetInstance()->session_state_delegate()->IsScreenLocked() && |
+ Shell::GetInstance()->session_state_delegate()->GetSessionState() == |
+ SessionStateDelegate::SESSION_STATE_ACTIVE; |
} |
void ScreenRotationAnimator::Rotate(gfx::Display::Rotation new_rotation, |