Index: ash/wm/shelf_layout_manager.cc |
diff --git a/ash/wm/shelf_layout_manager.cc b/ash/wm/shelf_layout_manager.cc |
index 52f6b03fcedac4705922301067e4a51044a7d48d..4cc641f63832d549de3863afeb070e036d6c4b03 100644 |
--- a/ash/wm/shelf_layout_manager.cc |
+++ b/ash/wm/shelf_layout_manager.cc |
@@ -247,6 +247,17 @@ void ShelfLayoutManager::LayoutShelf() { |
UpdateHitTestBounds(); |
} |
+ShelfVisibilityState ShelfLayoutManager::GetShelfVisibilityState() { |
+ switch(auto_hide_behavior_) { |
+ case SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS: |
+ return SHELF_AUTO_HIDE; |
+ case SHELF_AUTO_HIDE_ALWAYS_HIDDEN: |
+ return SHELF_HIDDEN; |
+ default: |
oshima
2013/01/30 00:28:31
case SHELF_AUTO_HIDE_BEHAVIOR_NEVER:
and no defau
zel
2013/01/30 01:01:34
Done.
|
+ return SHELF_VISIBLE; |
+ } |
+} |
+ |
void ShelfLayoutManager::UpdateVisibilityState() { |
ShellDelegate* delegate = Shell::GetInstance()->delegate(); |
if (delegate && delegate->IsScreenLocked()) { |
@@ -265,14 +276,12 @@ void ShelfLayoutManager::UpdateVisibilityState() { |
break; |
case WORKSPACE_WINDOW_STATE_MAXIMIZED: |
- SetState(auto_hide_behavior_ == SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS ? |
- SHELF_AUTO_HIDE : SHELF_VISIBLE); |
+ SetState(GetShelfVisibilityState()); |
break; |
case WORKSPACE_WINDOW_STATE_WINDOW_OVERLAPS_SHELF: |
case WORKSPACE_WINDOW_STATE_DEFAULT: |
- SetState(auto_hide_behavior_ == SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS ? |
- SHELF_AUTO_HIDE : SHELF_VISIBLE); |
+ SetState(GetShelfVisibilityState()); |
SetWindowOverlapsShelf(window_state == |
WORKSPACE_WINDOW_STATE_WINDOW_OVERLAPS_SHELF); |
break; |