OLD | NEW |
---|---|
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "ash/shelf/shelf_layout_manager.h" | 5 #include "ash/shelf/shelf_layout_manager.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <cmath> | 8 #include <cmath> |
9 | 9 |
10 #include "ash/ash_switches.h" | 10 #include "ash/ash_switches.h" |
(...skipping 278 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
289 if (Shell::GetInstance()->session_state_delegate()->IsScreenLocked()) { | 289 if (Shell::GetInstance()->session_state_delegate()->IsScreenLocked()) { |
290 SetState(SHELF_VISIBLE); | 290 SetState(SHELF_VISIBLE); |
291 } else if (gesture_drag_status_ == GESTURE_DRAG_COMPLETE_IN_PROGRESS) { | 291 } else if (gesture_drag_status_ == GESTURE_DRAG_COMPLETE_IN_PROGRESS) { |
292 // TODO(zelidrag): Verify shelf drag animation still shows on the device | 292 // TODO(zelidrag): Verify shelf drag animation still shows on the device |
293 // when we are in SHELF_AUTO_HIDE_ALWAYS_HIDDEN. | 293 // when we are in SHELF_AUTO_HIDE_ALWAYS_HIDDEN. |
294 SetState(CalculateShelfVisibilityWhileDragging()); | 294 SetState(CalculateShelfVisibilityWhileDragging()); |
295 } else { | 295 } else { |
296 WorkspaceWindowState window_state(workspace_controller_->GetWindowState()); | 296 WorkspaceWindowState window_state(workspace_controller_->GetWindowState()); |
297 switch (window_state) { | 297 switch (window_state) { |
298 case WORKSPACE_WINDOW_STATE_FULL_SCREEN: | 298 case WORKSPACE_WINDOW_STATE_FULL_SCREEN: |
299 { | 299 if (IsInImmersiveMode()) { |
300 aura::Window* fullscreen_window = | |
301 GetRootWindowController(root_window_)->GetFullscreenWindow(); | |
302 if (fullscreen_window->GetProperty(kFullscreenUsesMinimalChromeKey)) { | |
303 DCHECK_NE(auto_hide_behavior_, SHELF_AUTO_HIDE_ALWAYS_HIDDEN); | |
304 SetState(SHELF_AUTO_HIDE); | 300 SetState(SHELF_AUTO_HIDE); |
305 } else { | 301 } else { |
306 SetState(SHELF_HIDDEN); | 302 SetState(SHELF_HIDDEN); |
307 } | 303 } |
308 break; | 304 break; |
309 } | |
310 case WORKSPACE_WINDOW_STATE_MAXIMIZED: | 305 case WORKSPACE_WINDOW_STATE_MAXIMIZED: |
311 SetState(CalculateShelfVisibility()); | 306 SetState(CalculateShelfVisibility()); |
312 break; | 307 break; |
313 | |
314 case WORKSPACE_WINDOW_STATE_WINDOW_OVERLAPS_SHELF: | 308 case WORKSPACE_WINDOW_STATE_WINDOW_OVERLAPS_SHELF: |
315 case WORKSPACE_WINDOW_STATE_DEFAULT: | 309 case WORKSPACE_WINDOW_STATE_DEFAULT: |
316 SetState(CalculateShelfVisibility()); | 310 SetState(CalculateShelfVisibility()); |
317 SetWindowOverlapsShelf(window_state == | 311 SetWindowOverlapsShelf(window_state == |
318 WORKSPACE_WINDOW_STATE_WINDOW_OVERLAPS_SHELF); | 312 WORKSPACE_WINDOW_STATE_WINDOW_OVERLAPS_SHELF); |
319 break; | 313 break; |
320 } | 314 } |
321 } | 315 } |
322 } | 316 } |
323 | 317 |
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
440 CancelGestureDrag(); | 434 CancelGestureDrag(); |
441 return; | 435 return; |
442 } | 436 } |
443 | 437 |
444 gesture_drag_auto_hide_state_ = | 438 gesture_drag_auto_hide_state_ = |
445 gesture_drag_auto_hide_state_ == SHELF_AUTO_HIDE_SHOWN ? | 439 gesture_drag_auto_hide_state_ == SHELF_AUTO_HIDE_SHOWN ? |
446 SHELF_AUTO_HIDE_HIDDEN : SHELF_AUTO_HIDE_SHOWN; | 440 SHELF_AUTO_HIDE_HIDDEN : SHELF_AUTO_HIDE_SHOWN; |
447 if (shelf_) | 441 if (shelf_) |
448 shelf_->Deactivate(); | 442 shelf_->Deactivate(); |
449 shelf_->status_area_widget()->Deactivate(); | 443 shelf_->status_area_widget()->Deactivate(); |
444 | |
pkotwicz
2013/05/16 19:11:49
Nit: remove blank line
rharrison
2013/05/16 20:28:31
Done.
| |
450 if (gesture_drag_auto_hide_state_ == SHELF_AUTO_HIDE_HIDDEN && | 445 if (gesture_drag_auto_hide_state_ == SHELF_AUTO_HIDE_HIDDEN && |
451 auto_hide_behavior_ != SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS) { | 446 auto_hide_behavior_ != SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS) { |
452 gesture_drag_status_ = GESTURE_DRAG_NONE; | 447 gesture_drag_status_ = GESTURE_DRAG_NONE; |
453 SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS); | 448 if (!IsInImmersiveMode()) { |
449 SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS); | |
450 } else { | |
451 UpdateVisibilityState(); | |
452 } | |
454 } else if (gesture_drag_auto_hide_state_ == SHELF_AUTO_HIDE_SHOWN && | 453 } else if (gesture_drag_auto_hide_state_ == SHELF_AUTO_HIDE_SHOWN && |
455 auto_hide_behavior_ != SHELF_AUTO_HIDE_BEHAVIOR_NEVER) { | 454 auto_hide_behavior_ != SHELF_AUTO_HIDE_BEHAVIOR_NEVER) { |
456 gesture_drag_status_ = GESTURE_DRAG_NONE; | 455 gesture_drag_status_ = GESTURE_DRAG_NONE; |
457 SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_NEVER); | 456 SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_NEVER); |
458 } else { | 457 } else { |
459 gesture_drag_status_ = GESTURE_DRAG_COMPLETE_IN_PROGRESS; | 458 gesture_drag_status_ = GESTURE_DRAG_COMPLETE_IN_PROGRESS; |
460 UpdateVisibilityState(); | 459 UpdateVisibilityState(); |
461 gesture_drag_status_ = GESTURE_DRAG_NONE; | 460 gesture_drag_status_ = GESTURE_DRAG_NONE; |
462 } | 461 } |
463 LayoutShelf(); | 462 LayoutShelf(); |
(...skipping 489 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
953 return gfx::Insets(0, 0, 0, distance); | 952 return gfx::Insets(0, 0, 0, distance); |
954 case SHELF_ALIGNMENT_RIGHT: | 953 case SHELF_ALIGNMENT_RIGHT: |
955 return gfx::Insets(0, distance, 0, 0); | 954 return gfx::Insets(0, distance, 0, 0); |
956 case SHELF_ALIGNMENT_TOP: | 955 case SHELF_ALIGNMENT_TOP: |
957 return gfx::Insets(0, 0, distance, 0); | 956 return gfx::Insets(0, 0, distance, 0); |
958 } | 957 } |
959 NOTREACHED(); | 958 NOTREACHED(); |
960 return gfx::Insets(); | 959 return gfx::Insets(); |
961 } | 960 } |
962 | 961 |
962 bool ShelfLayoutManager::IsInImmersiveMode() const { | |
963 RootWindowController* controller = GetRootWindowController(root_window_); | |
964 if (!controller) | |
965 return false; | |
966 aura::Window* window = controller->GetFullscreenWindow(); | |
967 if (!window) | |
968 return false; | |
969 if (!window->GetProperty(kFullscreenUsesMinimalChromeKey)) | |
970 return false; | |
971 return true; | |
972 } | |
973 | |
974 | |
963 } // namespace internal | 975 } // namespace internal |
964 } // namespace ash | 976 } // namespace ash |
OLD | NEW |