| 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..2d3f4dc7ebe7904fbc719cd8a339ec8148f410c4 100644
|
| --- a/ash/wm/shelf_layout_manager.cc
|
| +++ b/ash/wm/shelf_layout_manager.cc
|
| @@ -247,6 +247,18 @@ 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_BEHAVIOR_NEVER:
|
| + return SHELF_VISIBLE;
|
| + case SHELF_AUTO_HIDE_ALWAYS_HIDDEN:
|
| + return SHELF_HIDDEN;
|
| + }
|
| + return SHELF_VISIBLE;
|
| +}
|
| +
|
| void ShelfLayoutManager::UpdateVisibilityState() {
|
| ShellDelegate* delegate = Shell::GetInstance()->delegate();
|
| if (delegate && delegate->IsScreenLocked()) {
|
| @@ -265,14 +277,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;
|
|
|