diff options
author | varkha@chromium.org <varkha@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-12-02 22:35:50 +0000 |
---|---|---|
committer | varkha@chromium.org <varkha@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-12-02 22:35:50 +0000 |
commit | fbc94488149d051eb37f09e9e5ba546f9d18880e (patch) | |
tree | 04208ff6f3b8d8f34f05a6a2a2114774aeccd5ca /ui/compositor/layer_animator.cc | |
parent | dd3e22f4d33b083713620f00a9f0b19bab06e20a (diff) | |
download | chromium_src-fbc94488149d051eb37f09e9e5ba546f9d18880e.zip chromium_src-fbc94488149d051eb37f09e9e5ba546f9d18880e.tar.gz chromium_src-fbc94488149d051eb37f09e9e5ba546f9d18880e.tar.bz2 |
Changes sequence of docked animations when evicting windows from dock. Windows that are restored into docked area are slid from below rather than from above as before. Additionally minimizing animation for the windows that no longer fit in the dock is slowed down in hopes of making it less confusing.
To allow this a new ScopedLayerAnimationSettings::LockTransitionDuration method is introduced which locks the current animation transition duration until the ScopedLayerAnimationSettings object that invoked it goes out of scope.
BUG=323188
TEST=ash_unittests --gtest_filter=WindowAnimationsTest.LockAnimationDuration
Review URL: https://codereview.chromium.org/82573002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@238212 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ui/compositor/layer_animator.cc')
-rw-r--r-- | ui/compositor/layer_animator.cc | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/ui/compositor/layer_animator.cc b/ui/compositor/layer_animator.cc index dd727a6..0fad04a 100644 --- a/ui/compositor/layer_animator.cc +++ b/ui/compositor/layer_animator.cc @@ -55,6 +55,7 @@ gfx::AnimationContainer* GetAnimationContainer() { LayerAnimator::LayerAnimator(base::TimeDelta transition_duration) : delegate_(NULL), preemption_strategy_(IMMEDIATELY_SET_NEW_TARGET), + is_transition_duration_locked_(false), transition_duration_(transition_duration), tween_type_(gfx::Tween::LINEAR), is_started_(false), @@ -118,6 +119,10 @@ ANIMATED_PROPERTY(float, BRIGHTNESS, Brightness, float, brightness); ANIMATED_PROPERTY(float, GRAYSCALE, Grayscale, float, grayscale); ANIMATED_PROPERTY(SkColor, COLOR, Color, SkColor, color); +base::TimeDelta LayerAnimator::GetTransitionDuration() const { + return transition_duration_; +} + void LayerAnimator::SetDelegate(LayerAnimationDelegate* delegate) { delegate_ = delegate; } @@ -810,8 +815,10 @@ void LayerAnimator::OnScheduled(LayerAnimationSequence* sequence) { sequence->OnScheduled(); } -base::TimeDelta LayerAnimator::GetTransitionDuration() const { - return transition_duration_; +void LayerAnimator::SetTransitionDuration(base::TimeDelta duration) { + if (is_transition_duration_locked_) + return; + transition_duration_ = duration; } void LayerAnimator::ClearAnimationsInternal() { |