summaryrefslogtreecommitdiffstats
path: root/ash
diff options
context:
space:
mode:
authorstevenjb <stevenjb@chromium.org>2016-03-02 11:27:28 -0800
committerCommit bot <commit-bot@chromium.org>2016-03-02 19:28:59 +0000
commit5de21685e254a2a87a42cd0c5d45662c000f1a31 (patch)
tree0ece03d350c54b98f4746b3aaf6c22d715d8692e /ash
parentc6dd5abdee6793d251a16cddb7b51449ab69bd12 (diff)
downloadchromium_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.cc14
-rw-r--r--ash/display/display_configuration_controller.h3
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);