Index: ui/wm/core/shadow_controller.cc |
diff --git a/ui/wm/core/shadow_controller.cc b/ui/wm/core/shadow_controller.cc |
index 99bfadf1130df4d5cbfcaae3993e84b4cf99a3ef..d25b4a551c34b9854b8011da97bfdbed347827f6 100644 |
--- a/ui/wm/core/shadow_controller.cc |
+++ b/ui/wm/core/shadow_controller.cc |
@@ -10,10 +10,12 @@ |
#include "base/logging.h" |
#include "base/memory/linked_ptr.h" |
#include "base/scoped_observer.h" |
+#include "ui/aura/client/aura_constants.h" |
#include "ui/aura/env.h" |
#include "ui/aura/env_observer.h" |
#include "ui/aura/window.h" |
#include "ui/aura/window_observer.h" |
+#include "ui/base/ui_base_types.h" |
#include "ui/compositor/layer.h" |
#include "ui/wm/core/shadow.h" |
#include "ui/wm/core/shadow_types.h" |
@@ -169,7 +171,7 @@ void ShadowController::Impl::OnWindowInitialized(aura::Window* window) { |
void ShadowController::Impl::OnWindowPropertyChanged(aura::Window* window, |
const void* key, |
intptr_t old) { |
- if (key == kShadowTypeKey) { |
+ if (key == kShadowTypeKey || key == aura::client::kShowStateKey) { |
HandlePossibleShadowVisibilityChange(window); |
return; |
} |
@@ -207,6 +209,13 @@ void ShadowController::Impl::OnWindowActivated(aura::Window* gained_active, |
bool ShadowController::Impl::ShouldShowShadowForWindow( |
aura::Window* window) const { |
+ ui::WindowShowState show_state = |
+ window->GetProperty(aura::client::kShowStateKey); |
+ if (show_state == ui::SHOW_STATE_FULLSCREEN || |
+ show_state == ui::SHOW_STATE_MAXIMIZED) { |
+ return SHADOW_TYPE_NONE; |
+ } |
+ |
const ShadowType type = GetShadowType(window); |
switch (type) { |
case SHADOW_TYPE_NONE: |