| Index: ui/views/corewm/window_animations.cc
|
| ===================================================================
|
| --- ui/views/corewm/window_animations.cc (revision 245869)
|
| +++ ui/views/corewm/window_animations.cc (working copy)
|
| @@ -56,8 +56,7 @@
|
| DEFINE_WINDOW_PROPERTY_KEY(int,
|
| kWindowVisibilityAnimationTypeKey,
|
| WINDOW_VISIBILITY_ANIMATION_TYPE_DEFAULT);
|
| -DEFINE_WINDOW_PROPERTY_KEY(int, kWindowShowAnimationDurationKey, 0);
|
| -DEFINE_WINDOW_PROPERTY_KEY(int, kWindowHideAnimationDurationKey, 0);
|
| +DEFINE_WINDOW_PROPERTY_KEY(int, kWindowVisibilityAnimationDurationKey, 0);
|
| DEFINE_WINDOW_PROPERTY_KEY(WindowVisibilityAnimationTransition,
|
| kWindowVisibilityAnimationTransitionKey,
|
| ANIMATE_BOTH);
|
| @@ -67,7 +66,6 @@
|
|
|
| namespace {
|
|
|
| -const int kDefaultAnimationDurationMS = 200;
|
| const int kDefaultAnimationDurationForMenuMS = 150;
|
|
|
| const float kWindowAnimation_HideOpacity = 0.f;
|
| @@ -86,11 +84,14 @@
|
| const int kWindowAnimation_Bounce_DurationMS = 180;
|
| const int kWindowAnimation_Bounce_GrowShrinkDurationPercent = 40;
|
|
|
| -base::TimeDelta GetDefaultWindowVisibilityAnimationDuration(
|
| - aura::Window* window) {
|
| - int duration_ms = (window->type() == ui::wm::WINDOW_TYPE_MENU) ?
|
| - kDefaultAnimationDurationForMenuMS : kDefaultAnimationDurationMS;
|
| - return base::TimeDelta::FromMilliseconds(duration_ms);
|
| +base::TimeDelta GetWindowVisibilityAnimationDuration(aura::Window* window) {
|
| + int duration =
|
| + window->GetProperty(kWindowVisibilityAnimationDurationKey);
|
| + if (duration == 0 && window->type() == ui::wm::WINDOW_TYPE_MENU) {
|
| + return base::TimeDelta::FromMilliseconds(
|
| + kDefaultAnimationDurationForMenuMS);
|
| + }
|
| + return TimeDelta::FromInternalValue(duration);
|
| }
|
|
|
| // Gets/sets the WindowVisibilityAnimationType associated with a window.
|
| @@ -254,9 +255,9 @@
|
| {
|
| // Property sets within this scope will be implicitly animated.
|
| ui::ScopedLayerAnimationSettings settings(window->layer()->GetAnimator());
|
| - base::TimeDelta duration = GetWindowShowAnimationDuration(window,
|
| - GetDefaultWindowVisibilityAnimationDuration(window));
|
| - settings.SetTransitionDuration(duration);
|
| + base::TimeDelta duration = GetWindowVisibilityAnimationDuration(window);
|
| + if (duration.ToInternalValue() > 0)
|
| + settings.SetTransitionDuration(duration);
|
|
|
| window->layer()->SetTransform(end_transform);
|
| window->layer()->SetOpacity(kWindowAnimation_ShowOpacity);
|
| @@ -272,11 +273,12 @@
|
|
|
| // Property sets within this scope will be implicitly animated.
|
| ui::ScopedLayerAnimationSettings settings(window->layer()->GetAnimator());
|
| - settings.AddObserver(CreateHidingWindowAnimationObserver(window));
|
| - base::TimeDelta duration = GetWindowHideAnimationDuration(window,
|
| - GetDefaultWindowVisibilityAnimationDuration(window));
|
| - settings.SetTransitionDuration(duration);
|
| + settings.AddObserver(new HidingWindowAnimationObserver(window));
|
|
|
| + base::TimeDelta duration = GetWindowVisibilityAnimationDuration(window);
|
| + if (duration.ToInternalValue() > 0)
|
| + settings.SetTransitionDuration(duration);
|
| +
|
| window->layer()->SetOpacity(kWindowAnimation_HideOpacity);
|
| window->layer()->SetTransform(end_transform);
|
| window->layer()->SetVisible(false);
|
| @@ -368,26 +370,17 @@
|
|
|
| void AddLayerAnimationsForRotate(aura::Window* window, bool show) {
|
| window->layer()->set_delegate(window);
|
| - if (show) {
|
| + if (show)
|
| window->layer()->SetOpacity(kWindowAnimation_HideOpacity);
|
| - window->layer()->SetVisible(true);
|
| - }
|
|
|
| - base::TimeDelta default_duration = base::TimeDelta::FromMilliseconds(
|
| + base::TimeDelta duration = base::TimeDelta::FromMilliseconds(
|
| kWindowAnimation_Rotate_DurationMS);
|
| - base::TimeDelta duration = show ?
|
| - GetWindowShowAnimationDuration(window, default_duration) :
|
| - GetWindowHideAnimationDuration(window, default_duration);
|
|
|
| - ui::ScopedLayerAnimationSettings settings(window->layer()->GetAnimator());
|
| - settings.SetTransitionDuration(duration);
|
| -
|
| if (!show) {
|
| - settings.AddObserver(CreateHidingWindowAnimationObserver(window));
|
| + new HidingWindowAnimationObserver(window);
|
| window->layer()->GetAnimator()->SchedulePauseForProperties(
|
| duration * (100 - kWindowAnimation_Rotate_OpacityDurationPercent) / 100,
|
| ui::LayerAnimationElement::OPACITY);
|
| - window->layer()->SetVisible(false);
|
| }
|
| scoped_ptr<ui::LayerAnimationElement> opacity(
|
| ui::LayerAnimationElement::CreateOpacityElement(
|
| @@ -529,34 +522,12 @@
|
| return (prop & transition) != 0;
|
| }
|
|
|
| -void SetWindowShowAnimationDuration(aura::Window* window,
|
| - const base::TimeDelta& duration) {
|
| - window->SetProperty(kWindowShowAnimationDurationKey,
|
| +void SetWindowVisibilityAnimationDuration(aura::Window* window,
|
| + const TimeDelta& duration) {
|
| + window->SetProperty(kWindowVisibilityAnimationDurationKey,
|
| static_cast<int>(duration.ToInternalValue()));
|
| }
|
|
|
| -void SetWindowHideAnimationDuration(aura::Window* window,
|
| - const base::TimeDelta& duration) {
|
| - window->SetProperty(kWindowHideAnimationDurationKey,
|
| - static_cast<int>(duration.ToInternalValue()));
|
| -}
|
| -
|
| -base::TimeDelta GetWindowShowAnimationDuration(
|
| - aura::Window* window,
|
| - const base::TimeDelta& default_duration) {
|
| - int duration = window->GetProperty(kWindowShowAnimationDurationKey);
|
| - return (duration == 0) ?
|
| - default_duration : base::TimeDelta::FromInternalValue(duration);
|
| -}
|
| -
|
| -base::TimeDelta GetWindowHideAnimationDuration(
|
| - aura::Window* window,
|
| - const base::TimeDelta& default_duration) {
|
| - int duration = window->GetProperty(kWindowHideAnimationDurationKey);
|
| - return (duration == 0) ?
|
| - default_duration : base::TimeDelta::FromInternalValue(duration);
|
| -}
|
| -
|
| void SetWindowVisibilityAnimationVerticalPosition(aura::Window* window,
|
| float position) {
|
| window->SetProperty(kWindowVisibilityAnimationVerticalPositionKey, position);
|
|
|