| Index: ash/display/display_configuration_controller.cc
|
| diff --git a/ash/display/display_configuration_controller.cc b/ash/display/display_configuration_controller.cc
|
| index 29cd68edca1826eb438ec3e3dc3e97f7291f5258..54c43a7f398206e2fe421fe604d60e7603004978 100644
|
| --- a/ash/display/display_configuration_controller.cc
|
| +++ b/ash/display/display_configuration_controller.cc
|
| @@ -31,6 +31,14 @@ const int64_t kSetPrimaryDisplayThrottleTimeoutMs = 500;
|
|
|
| namespace ash {
|
|
|
| +namespace {
|
| +
|
| +bool CanAnimate(ScreenRotationAnimator* animator) {
|
| + return animator && animator->CanAnimate();
|
| +}
|
| +
|
| +} // namespace
|
| +
|
| class DisplayConfigurationController::DisplayChangeLimiter {
|
| public:
|
| DisplayChangeLimiter() : throttle_timeout_(base::Time::Now()) {}
|
| @@ -104,12 +112,13 @@ void DisplayConfigurationController::SetDisplayRotation(
|
| rotation)
|
| return;
|
|
|
| + ScreenRotationAnimator* screen_rotation_animator = nullptr;
|
| if (display_manager_->IsDisplayIdValid(display_id)) {
|
| - ScreenRotationAnimator* screen_rotation_animator =
|
| - GetScreenRotationAnimatorForDisplay(display_id);
|
| + screen_rotation_animator = GetScreenRotationAnimatorForDisplay(display_id);
|
| + }
|
| + if (CanAnimate(screen_rotation_animator)) {
|
| screen_rotation_animator->Rotate(rotation, source);
|
| } else {
|
| - DCHECK(!rotation_animator_map_.count(display_id));
|
| display_manager_->SetDisplayRotation(display_id, rotation, source);
|
| }
|
| }
|
|
|