diff options
author | derat@chromium.org <derat@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-02-29 21:16:26 +0000 |
---|---|---|
committer | derat@chromium.org <derat@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-02-29 21:16:26 +0000 |
commit | 59f43788f52b293531a92b368ada577e8a1668d0 (patch) | |
tree | 64ae234a4f572a1da1c4bc2be067cc636af7be99 /ash/wm/shadow_controller.cc | |
parent | 81c121289b5fefcb1fc97be4efc54c187c893450 (diff) | |
download | chromium_src-59f43788f52b293531a92b368ada577e8a1668d0.zip chromium_src-59f43788f52b293531a92b368ada577e8a1668d0.tar.gz chromium_src-59f43788f52b293531a92b368ada577e8a1668d0.tar.bz2 |
aura: Add support for smaller, lighter shadows.
These are displayed behind tooltips and menus.
BUG=115402
TEST=added a tiny test to check that we use the new shadow style; also manually checked that tooltips and menus get the small shadow but other windows get the larger active/inactive shadows
TBR=ben@chromium.org
Review URL: http://codereview.chromium.org/9508004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@124255 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ash/wm/shadow_controller.cc')
-rw-r--r-- | ash/wm/shadow_controller.cc | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/ash/wm/shadow_controller.cc b/ash/wm/shadow_controller.cc index 7e7d5f5..caae9ae 100644 --- a/ash/wm/shadow_controller.cc +++ b/ash/wm/shadow_controller.cc @@ -42,6 +42,17 @@ ShadowType GetShadowTypeFromWindow(aura::Window* window) { return SHADOW_TYPE_NONE; } +bool ShouldUseSmallShadowForWindow(aura::Window* window) { + switch (window->type()) { + case aura::client::WINDOW_TYPE_MENU: + case aura::client::WINDOW_TYPE_TOOLTIP: + return true; + default: + break; + } + return false; +} + } // namespace ShadowController::ShadowController() { @@ -116,7 +127,7 @@ Shadow* ShadowController::GetShadowForWindow(aura::Window* window) { void ShadowController::HandleWindowActivationChange(aura::Window* window, bool active) { Shadow* shadow = GetShadowForWindow(window); - if (shadow) + if (shadow && !ShouldUseSmallShadowForWindow(window)) shadow->SetStyle(active ? Shadow::STYLE_ACTIVE : Shadow::STYLE_INACTIVE); } @@ -134,7 +145,8 @@ void ShadowController::CreateShadowForWindow(aura::Window* window) { linked_ptr<Shadow> shadow(new Shadow()); window_shadows_.insert(make_pair(window, shadow)); - shadow->Init(); + shadow->Init(ShouldUseSmallShadowForWindow(window) ? + Shadow::STYLE_SMALL : Shadow::STYLE_ACTIVE); shadow->SetContentBounds(gfx::Rect(window->bounds().size())); shadow->layer()->SetVisible(ShouldShowShadowForWindow(window)); window->layer()->Add(shadow->layer()); |