summaryrefslogtreecommitdiffstats
path: root/ash/wm/shadow_controller.cc
diff options
context:
space:
mode:
authorderat@chromium.org <derat@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-02-29 21:16:26 +0000
committerderat@chromium.org <derat@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-02-29 21:16:26 +0000
commit59f43788f52b293531a92b368ada577e8a1668d0 (patch)
tree64ae234a4f572a1da1c4bc2be067cc636af7be99 /ash/wm/shadow_controller.cc
parent81c121289b5fefcb1fc97be4efc54c187c893450 (diff)
downloadchromium_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.cc16
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());