summaryrefslogtreecommitdiffstats
path: root/ash/shelf/shelf_layout_manager.cc
diff options
context:
space:
mode:
authorpkotwicz@chromium.org <pkotwicz@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-04-30 17:49:20 +0000
committerpkotwicz@chromium.org <pkotwicz@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-04-30 17:49:20 +0000
commit700849ffe63508dc0868271f257ada11bcdf2791 (patch)
tree95fe7b776d78e4a75108ac2515e2f69653ef7db1 /ash/shelf/shelf_layout_manager.cc
parent982970e2cc90dba47e0cc264fea7a46988ddfd8b (diff)
downloadchromium_src-700849ffe63508dc0868271f257ada11bcdf2791.zip
chromium_src-700849ffe63508dc0868271f257ada11bcdf2791.tar.gz
chromium_src-700849ffe63508dc0868271f257ada11bcdf2791.tar.bz2
Hide the tab indicators and the shelf when in immersive + tab fullscreen.
BUG=234447, 233271 Test=ImmersiveModeControllerAshTest.TabAndBrowserFullscreen, RootWindowController.GetFullscreenWindow Review URL: https://chromiumcodereview.appspot.com/14340007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@197400 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ash/shelf/shelf_layout_manager.cc')
-rw-r--r--ash/shelf/shelf_layout_manager.cc18
1 files changed, 11 insertions, 7 deletions
diff --git a/ash/shelf/shelf_layout_manager.cc b/ash/shelf/shelf_layout_manager.cc
index 977655f..fa4e47f 100644
--- a/ash/shelf/shelf_layout_manager.cc
+++ b/ash/shelf/shelf_layout_manager.cc
@@ -19,6 +19,7 @@
#include "ash/system/status_area_widget.h"
#include "ash/wm/property_util.h"
#include "ash/wm/window_cycle_controller.h"
+#include "ash/wm/window_properties.h"
#include "ash/wm/window_util.h"
#include "ash/wm/workspace_controller.h"
#include "ash/wm/workspace/workspace_animations.h"
@@ -276,18 +277,21 @@ void ShelfLayoutManager::UpdateVisibilityState() {
// TODO(zelidrag): Verify shelf drag animation still shows on the device
// when we are in SHELF_AUTO_HIDE_ALWAYS_HIDDEN.
SetState(CalculateShelfVisibilityWhileDragging());
- } else if (GetRootWindowController(root_window_)->IsImmersiveMode()) {
- // The user choosing immersive mode indicates he or she wants to maximize
- // screen real-estate for content, so always auto-hide the shelf.
- DCHECK_NE(auto_hide_behavior_, SHELF_AUTO_HIDE_ALWAYS_HIDDEN);
- SetState(SHELF_AUTO_HIDE);
} else {
WorkspaceWindowState window_state(workspace_controller_->GetWindowState());
switch (window_state) {
case WORKSPACE_WINDOW_STATE_FULL_SCREEN:
- SetState(SHELF_HIDDEN);
+ {
+ aura::Window* fullscreen_window =
+ GetRootWindowController(root_window_)->GetFullscreenWindow();
+ if (fullscreen_window->GetProperty(kFullscreenUsesMinimalChromeKey)) {
+ DCHECK_NE(auto_hide_behavior_, SHELF_AUTO_HIDE_ALWAYS_HIDDEN);
+ SetState(SHELF_AUTO_HIDE);
+ } else {
+ SetState(SHELF_HIDDEN);
+ }
break;
-
+ }
case WORKSPACE_WINDOW_STATE_MAXIMIZED:
SetState(CalculateShelfVisibility());
break;