Chromium Code Reviews| Index: ash/wm/dock/docked_window_layout_manager.cc |
| diff --git a/ash/wm/dock/docked_window_layout_manager.cc b/ash/wm/dock/docked_window_layout_manager.cc |
| index d540b58d279d390f8c18a380ca181cc6cefe2e19..8d9892bd86420b65a2e9b866f7f3ff1c66412ebd 100644 |
| --- a/ash/wm/dock/docked_window_layout_manager.cc |
| +++ b/ash/wm/dock/docked_window_layout_manager.cc |
| @@ -149,6 +149,7 @@ class DockedBackgroundWidget : public views::Widget, |
| params.accept_events = false; |
| set_focus_on_creation(false); |
| Init(params); |
| + SetVisibilityChangedAnimationsEnabled(false); |
| GetNativeWindow()->SetProperty(internal::kStayInSameRootWindowKey, true); |
| opaque_background_.SetColor(SK_ColorBLACK); |
| opaque_background_.SetBounds(gfx::Rect(GetWindowBoundsInScreen().size())); |
| @@ -463,12 +464,18 @@ void DockedWindowLayoutManager::FinishDragging(DockedAction action, |
| wm::GetWindowState(dragged_window_)->RemoveObserver(this); |
| if (last_active_window_ == dragged_window_) |
| last_active_window_ = NULL; |
| + |
| + views::corewm::SetWindowShowAnimationDuration(dragged_window_, |
| + base::TimeDelta()); |
| } else { |
| // A window is no longer dragged and is a child. |
| // When a window becomes a child at drag start this is |
| // the only opportunity we will have to enforce a window |
| // count limit so do it here. |
| MaybeMinimizeChildrenExcept(dragged_window_); |
| + |
| + views::corewm::SetWindowShowAnimationDuration(dragged_window_, |
| + base::TimeDelta::FromMilliseconds(kFadeDurationMs)); |
| } |
| dragged_window_ = NULL; |
| dragged_bounds_ = gfx::Rect(); |
| @@ -602,6 +609,8 @@ void DockedWindowLayoutManager::OnWindowAddedToLayout(aura::Window* child) { |
| wm::GetWindowState(child)->AddObserver(this); |
| Relayout(); |
| UpdateDockBounds(DockedWindowLayoutManagerObserver::CHILD_CHANGED); |
| + views::corewm::SetWindowShowAnimationDuration(child, |
| + base::TimeDelta::FromMilliseconds(kFadeDurationMs)); |
| } |
| void DockedWindowLayoutManager::OnWindowRemovedFromLayout(aura::Window* child) { |
| @@ -623,6 +632,7 @@ void DockedWindowLayoutManager::OnWindowRemovedFromLayout(aura::Window* child) { |
| wm::GetWindowState(child)->RemoveObserver(this); |
| Relayout(); |
| UpdateDockBounds(DockedWindowLayoutManagerObserver::CHILD_CHANGED); |
| + views::corewm::SetWindowShowAnimationDuration(child, base::TimeDelta()); |
| } |
| void DockedWindowLayoutManager::OnChildWindowVisibilityChanged( |
| @@ -761,21 +771,6 @@ void DockedWindowLayoutManager::OnWindowBoundsChanged( |
| Relayout(); |
| } |
| -void DockedWindowLayoutManager::OnWindowVisibilityChanging( |
| - aura::Window* window, bool visible) { |
| - if (IsPopupOrTransient(window)) |
| - return; |
| - int animation_type = views::corewm::WINDOW_VISIBILITY_ANIMATION_TYPE_DEFAULT; |
| - if (visible) { |
| - animation_type = views::corewm::WINDOW_VISIBILITY_ANIMATION_TYPE_DROP; |
|
pkotwicz
2013/12/23 01:12:06
WINDOW_VISIBILITY_ANIMATION_TYPE_DROP is the defau
|
| - views::corewm::SetWindowVisibilityAnimationDuration( |
| - window, base::TimeDelta::FromMilliseconds(kFadeDurationMs)); |
| - } else if (wm::GetWindowState(window)->IsMinimized()) { |
| - animation_type = WINDOW_VISIBILITY_ANIMATION_TYPE_MINIMIZE; |
| - } |
| - views::corewm::SetWindowVisibilityAnimationType(window, animation_type); |
| -} |
| - |
| void DockedWindowLayoutManager::OnWindowDestroying(aura::Window* window) { |
| if (dragged_window_ == window) { |
| FinishDragging(DOCKED_ACTION_NONE, DOCKED_ACTION_SOURCE_UNKNOWN); |
| @@ -831,21 +826,25 @@ void DockedWindowLayoutManager::MaybeMinimizeChildrenExcept( |
| if (available_room > room_needed) { |
| available_room -= room_needed; |
| } else { |
| - // Slow down minimizing animations. Lock duration so that it is not |
| - // overridden by other ScopedLayerAnimationSettings down the stack. |
| - ui::ScopedLayerAnimationSettings settings(window->layer()->GetAnimator()); |
| - settings.SetTransitionDuration( |
| + // Slow down the minimize animation. |
| + views::corewm::SetWindowHideAnimationDuration( |
| + window, |
| base::TimeDelta::FromMilliseconds(kMinimizeDurationMs)); |
| - settings.LockTransitionDuration(); |
| wm::GetWindowState(window)->Minimize(); |
| + views::corewm::SetWindowHideAnimationDuration(window, base::TimeDelta()); |
| } |
| } |
| } |
| void DockedWindowLayoutManager::MinimizeDockedWindow( |
| wm::WindowState* window_state) { |
| - DCHECK(!IsPopupOrTransient(window_state->window())); |
| - window_state->window()->Hide(); |
| + aura::Window* window = window_state->window(); |
| + DCHECK(!IsPopupOrTransient(window)); |
| + views::corewm::SetWindowVisibilityAnimationType(window, |
| + ash::WINDOW_VISIBILITY_ANIMATION_TYPE_MINIMIZE); |
| + window->Hide(); |
| + views::corewm::SetWindowVisibilityAnimationType(window, |
| + views::corewm::WINDOW_VISIBILITY_ANIMATION_TYPE_DEFAULT); |
| if (window_state->IsActive()) |
| window_state->Deactivate(); |
| RecordUmaAction(DOCKED_ACTION_MINIMIZE, DOCKED_ACTION_SOURCE_UNKNOWN); |