summaryrefslogtreecommitdiffstats
path: root/ash/wm
diff options
context:
space:
mode:
authorvarkha@chromium.org <varkha@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-09-19 19:09:27 +0000
committervarkha@chromium.org <varkha@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-09-19 19:09:27 +0000
commit5eab6e92779310a68cbea80cff0f7a30cebeffcd (patch)
tree838bb8d187db650c47caa3894b87841171a6447b /ash/wm
parentcdd7c0cc1d4eac44ea7885b53805f110e062ff6c (diff)
downloadchromium_src-5eab6e92779310a68cbea80cff0f7a30cebeffcd.zip
chromium_src-5eab6e92779310a68cbea80cff0f7a30cebeffcd.tar.gz
chromium_src-5eab6e92779310a68cbea80cff0f7a30cebeffcd.tar.bz2
Animate windows when minimizing from and restoring to dock
BUG=264024 TEST=visual Review URL: https://chromiumcodereview.appspot.com/24053006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@224178 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ash/wm')
-rw-r--r--ash/wm/dock/docked_window_layout_manager.cc15
1 files changed, 12 insertions, 3 deletions
diff --git a/ash/wm/dock/docked_window_layout_manager.cc b/ash/wm/dock/docked_window_layout_manager.cc
index 577d2b5..30701a9 100644
--- a/ash/wm/dock/docked_window_layout_manager.cc
+++ b/ash/wm/dock/docked_window_layout_manager.cc
@@ -13,6 +13,7 @@
#include "ash/shell.h"
#include "ash/shell_window_ids.h"
#include "ash/wm/coordinate_conversion.h"
+#include "ash/wm/window_animations.h"
#include "ash/wm/window_properties.h"
#include "ash/wm/window_util.h"
#include "base/auto_reset.h"
@@ -64,7 +65,6 @@ class DockedBackgroundWidget : public views::Widget {
content_view->set_background(
views::Background::CreateSolidBackground(kDockBackgroundColor));
SetContentsView(content_view);
- GetNativeWindow()->layer()->SetOpacity(kDockBackgroundOpacity);
Hide();
}
@@ -475,6 +475,8 @@ void DockedWindowLayoutManager::WillChangeVisibilityState(
base::AutoReset<bool> auto_reset_in_layout(&in_layout_, true);
for (size_t i = 0; i < dock_container_->children().size(); ++i) {
aura::Window* window = dock_container_->children()[i];
+ if (window->type() == aura::client::WINDOW_TYPE_POPUP)
+ continue;
if (shelf_hidden_) {
if (window->IsVisible())
MinimizeWindow(window);
@@ -492,12 +494,16 @@ void DockedWindowLayoutManager::WillChangeVisibilityState(
// DockLayoutManager private implementation:
void DockedWindowLayoutManager::MinimizeWindow(aura::Window* window) {
+ DCHECK_NE(window->type(), aura::client::WINDOW_TYPE_POPUP);
+ views::corewm::SetWindowVisibilityAnimationType(
+ window, WINDOW_VISIBILITY_ANIMATION_TYPE_MINIMIZE);
window->Hide();
if (wm::IsActiveWindow(window))
wm::DeactivateWindow(window);
}
void DockedWindowLayoutManager::RestoreWindow(aura::Window* window) {
+ DCHECK_NE(window->type(), aura::client::WINDOW_TYPE_POPUP);
window->Show();
}
@@ -660,10 +666,13 @@ void DockedWindowLayoutManager::UpdateDockBounds() {
Shell::GetScreen()->GetDisplayNearestWindow(dock_container_).work_area();
background_bounds.set_height(work_area.height());
background_widget_->SetBounds(background_bounds);
- if (docked_width_ > 0)
+ if (docked_width_ > 0) {
background_widget_->Show();
- else
+ background_widget_->GetNativeWindow()->layer()->SetOpacity(
+ kDockBackgroundOpacity);
+ } else {
background_widget_->Hide();
+ }
}
void DockedWindowLayoutManager::UpdateStacking(aura::Window* active_window) {