| 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/common/shelf/shelf_layout_manager.h" | 5 #include "ash/common/shelf/shelf_layout_manager.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <cmath> | 8 #include <cmath> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| 11 #include "ash/common/material_design/material_design_controller.h" | 11 #include "ash/common/material_design/material_design_controller.h" |
| 12 #include "ash/common/session/session_state_delegate.h" | 12 #include "ash/common/session/session_state_delegate.h" |
| 13 #include "ash/common/shelf/shelf_constants.h" | 13 #include "ash/common/shelf/shelf_constants.h" |
| 14 #include "ash/common/shelf/shelf_delegate.h" | |
| 15 #include "ash/common/shelf/shelf_layout_manager_observer.h" | 14 #include "ash/common/shelf/shelf_layout_manager_observer.h" |
| 16 #include "ash/common/shelf/wm_shelf.h" | 15 #include "ash/common/shelf/wm_shelf.h" |
| 17 #include "ash/common/shelf/wm_shelf_util.h" | 16 #include "ash/common/shelf/wm_shelf_util.h" |
| 18 #include "ash/common/shell_window_ids.h" | 17 #include "ash/common/shell_window_ids.h" |
| 19 #include "ash/common/system/status_area_widget.h" | 18 #include "ash/common/system/status_area_widget.h" |
| 20 #include "ash/common/wm/fullscreen_window_finder.h" | 19 #include "ash/common/wm/fullscreen_window_finder.h" |
| 21 #include "ash/common/wm/mru_window_tracker.h" | 20 #include "ash/common/wm/mru_window_tracker.h" |
| 22 #include "ash/common/wm/window_state.h" | 21 #include "ash/common/wm/window_state.h" |
| 23 #include "ash/common/wm/wm_screen_util.h" | 22 #include "ash/common/wm/wm_screen_util.h" |
| 24 #include "ash/common/wm_lookup.h" | 23 #include "ash/common/wm_lookup.h" |
| (...skipping 479 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 504 shelf_widget_->SetDimsShelf(state.visibility_state == SHELF_VISIBLE && | 503 shelf_widget_->SetDimsShelf(state.visibility_state == SHELF_VISIBLE && |
| 505 state.window_state == | 504 state.window_state == |
| 506 wm::WORKSPACE_WINDOW_STATE_MAXIMIZED); | 505 wm::WORKSPACE_WINDOW_STATE_MAXIMIZED); |
| 507 | 506 |
| 508 TargetBounds target_bounds; | 507 TargetBounds target_bounds; |
| 509 CalculateTargetBounds(state_, &target_bounds); | 508 CalculateTargetBounds(state_, &target_bounds); |
| 510 UpdateBoundsAndOpacity( | 509 UpdateBoundsAndOpacity( |
| 511 target_bounds, true /* animate */, true /* change_work_area */, | 510 target_bounds, true /* animate */, true /* change_work_area */, |
| 512 delay_background_change ? update_shelf_observer_ : NULL); | 511 delay_background_change ? update_shelf_observer_ : NULL); |
| 513 | 512 |
| 514 // The delegate must be notified after |state_| is updated so that it can | |
| 515 // query the new target bounds. | |
| 516 ShelfDelegate* shelf_delegate = WmShell::Get()->shelf_delegate(); | |
| 517 DCHECK(shelf_delegate); | |
| 518 if (old_state.visibility_state != state_.visibility_state) | |
| 519 shelf_delegate->OnShelfVisibilityStateChanged(wm_shelf_); | |
| 520 | |
| 521 // OnAutoHideStateChanged Should be emitted when: | 513 // OnAutoHideStateChanged Should be emitted when: |
| 522 // - firstly state changed to auto-hide from other state | 514 // - firstly state changed to auto-hide from other state |
| 523 // - or, auto_hide_state has changed | 515 // - or, auto_hide_state has changed |
| 524 if ((old_state.visibility_state != state_.visibility_state && | 516 if ((old_state.visibility_state != state_.visibility_state && |
| 525 state_.visibility_state == SHELF_AUTO_HIDE) || | 517 state_.visibility_state == SHELF_AUTO_HIDE) || |
| 526 old_state.auto_hide_state != state_.auto_hide_state) { | 518 old_state.auto_hide_state != state_.auto_hide_state) { |
| 527 shelf_delegate->OnShelfAutoHideStateChanged(wm_shelf_); | |
| 528 FOR_EACH_OBSERVER(ShelfLayoutManagerObserver, observers_, | 519 FOR_EACH_OBSERVER(ShelfLayoutManagerObserver, observers_, |
| 529 OnAutoHideStateChanged(state_.auto_hide_state)); | 520 OnAutoHideStateChanged(state_.auto_hide_state)); |
| 530 } | 521 } |
| 531 } | 522 } |
| 532 | 523 |
| 533 void ShelfLayoutManager::UpdateBoundsAndOpacity( | 524 void ShelfLayoutManager::UpdateBoundsAndOpacity( |
| 534 const TargetBounds& target_bounds, | 525 const TargetBounds& target_bounds, |
| 535 bool animate, | 526 bool animate, |
| 536 bool change_work_area, | 527 bool change_work_area, |
| 537 ui::ImplicitAnimationObserver* observer) { | 528 ui::ImplicitAnimationObserver* observer) { |
| (...skipping 573 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1111 gesture_drag_status_ = GESTURE_DRAG_NONE; | 1102 gesture_drag_status_ = GESTURE_DRAG_NONE; |
| 1112 } | 1103 } |
| 1113 | 1104 |
| 1114 void ShelfLayoutManager::CancelGestureDrag() { | 1105 void ShelfLayoutManager::CancelGestureDrag() { |
| 1115 gesture_drag_status_ = GESTURE_DRAG_CANCEL_IN_PROGRESS; | 1106 gesture_drag_status_ = GESTURE_DRAG_CANCEL_IN_PROGRESS; |
| 1116 UpdateVisibilityState(); | 1107 UpdateVisibilityState(); |
| 1117 gesture_drag_status_ = GESTURE_DRAG_NONE; | 1108 gesture_drag_status_ = GESTURE_DRAG_NONE; |
| 1118 } | 1109 } |
| 1119 | 1110 |
| 1120 } // namespace ash | 1111 } // namespace ash |
| OLD | NEW |