diff options
author | stevenjb <stevenjb@chromium.org> | 2016-03-02 11:27:28 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-03-02 19:28:59 +0000 |
commit | 5de21685e254a2a87a42cd0c5d45662c000f1a31 (patch) | |
tree | 0ece03d350c54b98f4746b3aaf6c22d715d8692e /ash | |
parent | c6dd5abdee6793d251a16cddb7b51449ab69bd12 (diff) | |
download | chromium_src-5de21685e254a2a87a42cd0c5d45662c000f1a31.zip chromium_src-5de21685e254a2a87a42cd0c5d45662c000f1a31.tar.gz chromium_src-5de21685e254a2a87a42cd0c5d45662c000f1a31.tar.bz2 |
Set display config controller timeout before animation
BUG=589562
Review URL: https://codereview.chromium.org/1752923003
Cr-Commit-Position: refs/heads/master@{#378797}
Diffstat (limited to 'ash')
-rw-r--r-- | ash/display/display_configuration_controller.cc | 14 | ||||
-rw-r--r-- | ash/display/display_configuration_controller.h | 3 |
2 files changed, 11 insertions, 6 deletions
diff --git a/ash/display/display_configuration_controller.cc b/ash/display/display_configuration_controller.cc index 25d8727..9fdf8be 100644 --- a/ash/display/display_configuration_controller.cc +++ b/ash/display/display_configuration_controller.cc @@ -85,6 +85,7 @@ void DisplayConfigurationController::SetMirrorMode(bool mirror, display_manager_->IsInMirrorMode() == mirror || IsLimited()) { return; } + SetThrottleTimeout(kCycleDisplayThrottleTimeoutMs); if (user_action && display_animator_) { display_animator_->StartFadeOutAnimation( base::Bind(&DisplayConfigurationController::SetMirrorModeImpl, @@ -111,6 +112,7 @@ void DisplayConfigurationController::SetPrimaryDisplayId(int64_t display_id, if (display_manager_->GetNumDisplays() <= 1 || IsLimited()) return; + SetThrottleTimeout(kSetPrimaryDisplayThrottleTimeoutMs); if (user_action && display_animator_) { display_animator_->StartFadeOutAnimation( base::Bind(&DisplayConfigurationController::SetPrimaryDisplayIdImpl, @@ -122,8 +124,7 @@ void DisplayConfigurationController::SetPrimaryDisplayId(int64_t display_id, void DisplayConfigurationController::OnDisplayConfigurationChanged() { // TODO(oshima): Stop all animations. - if (limiter_) - limiter_->SetThrottleTimeout(kAfterDisplayChangeThrottleTimeoutMs); + SetThrottleTimeout(kAfterDisplayChangeThrottleTimeoutMs); } // Protected @@ -136,6 +137,11 @@ void DisplayConfigurationController::ResetAnimatorForTest() { // Private +void DisplayConfigurationController::SetThrottleTimeout(int64_t throttle_ms) { + if (limiter_) + limiter_->SetThrottleTimeout(throttle_ms); +} + bool DisplayConfigurationController::IsLimited() { return limiter_ && limiter_->IsThrottled(); } @@ -150,8 +156,6 @@ void DisplayConfigurationController::SetDisplayLayoutImpl( void DisplayConfigurationController::SetMirrorModeImpl(bool mirror) { display_manager_->SetMirrorMode(mirror); - if (limiter_) - limiter_->SetThrottleTimeout(kCycleDisplayThrottleTimeoutMs); if (display_animator_) display_animator_->StartFadeInAnimation(); } @@ -159,8 +163,6 @@ void DisplayConfigurationController::SetMirrorModeImpl(bool mirror) { void DisplayConfigurationController::SetPrimaryDisplayIdImpl( int64_t display_id) { window_tree_host_manager_->SetPrimaryDisplayId(display_id); - if (limiter_) - limiter_->SetThrottleTimeout(kSetPrimaryDisplayThrottleTimeoutMs); if (display_animator_) display_animator_->StartFadeInAnimation(); } diff --git a/ash/display/display_configuration_controller.h b/ash/display/display_configuration_controller.h index 86527b4..2c3f5b1 100644 --- a/ash/display/display_configuration_controller.h +++ b/ash/display/display_configuration_controller.h @@ -65,6 +65,9 @@ class ASH_EXPORT DisplayConfigurationController private: class DisplayChangeLimiter; + // Sets the timeout for the DisplayChangeLimiter if it exists. Call this + // *before* starting any animations. + void SetThrottleTimeout(int64_t throttle_ms); bool IsLimited(); void SetDisplayLayoutImpl(scoped_ptr<DisplayLayout> layout); void SetMirrorModeImpl(bool mirror); |