| 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/animation/animation_change_type.h" | 11 #include "ash/animation/animation_change_type.h" |
| 12 #include "ash/common/keyboard/keyboard_observer_register.h" | 12 #include "ash/common/keyboard/keyboard_observer_register.h" |
| 13 #include "ash/common/session/session_controller.h" | 13 #include "ash/common/session/session_controller.h" |
| 14 #include "ash/common/session/session_state_delegate.h" | |
| 15 #include "ash/common/shelf/shelf_constants.h" | 14 #include "ash/common/shelf/shelf_constants.h" |
| 16 #include "ash/common/shelf/shelf_layout_manager_observer.h" | 15 #include "ash/common/shelf/shelf_layout_manager_observer.h" |
| 17 #include "ash/common/shelf/shelf_widget.h" | 16 #include "ash/common/shelf/shelf_widget.h" |
| 18 #include "ash/common/shelf/wm_shelf.h" | 17 #include "ash/common/shelf/wm_shelf.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_shell.h" | 23 #include "ash/common/wm_shell.h" |
| (...skipping 309 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 334 void ShelfLayoutManager::AddObserver(ShelfLayoutManagerObserver* observer) { | 333 void ShelfLayoutManager::AddObserver(ShelfLayoutManagerObserver* observer) { |
| 335 observers_.AddObserver(observer); | 334 observers_.AddObserver(observer); |
| 336 } | 335 } |
| 337 | 336 |
| 338 void ShelfLayoutManager::RemoveObserver(ShelfLayoutManagerObserver* observer) { | 337 void ShelfLayoutManager::RemoveObserver(ShelfLayoutManagerObserver* observer) { |
| 339 observers_.RemoveObserver(observer); | 338 observers_.RemoveObserver(observer); |
| 340 } | 339 } |
| 341 | 340 |
| 342 bool ShelfLayoutManager::ProcessGestureEvent(const ui::GestureEvent& event) { | 341 bool ShelfLayoutManager::ProcessGestureEvent(const ui::GestureEvent& event) { |
| 343 // The gestures are disabled in the lock/login screen. | 342 // The gestures are disabled in the lock/login screen. |
| 344 SessionStateDelegate* delegate = WmShell::Get()->GetSessionStateDelegate(); | 343 SessionController* controller = WmShell::Get()->session_controller(); |
| 345 if (!delegate->NumberOfLoggedInUsers() || delegate->IsScreenLocked()) | 344 if (!controller->NumberOfLoggedInUsers() || controller->IsScreenLocked()) |
| 346 return false; | 345 return false; |
| 347 | 346 |
| 348 if (IsShelfHiddenForFullscreen()) | 347 if (IsShelfHiddenForFullscreen()) |
| 349 return false; | 348 return false; |
| 350 | 349 |
| 351 if (event.type() == ui::ET_GESTURE_SCROLL_BEGIN) { | 350 if (event.type() == ui::ET_GESTURE_SCROLL_BEGIN) { |
| 352 StartGestureDrag(event); | 351 StartGestureDrag(event); |
| 353 return true; | 352 return true; |
| 354 } | 353 } |
| 355 | 354 |
| (...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 431 (!base::CommandLine::ForCurrentProcess()->HasSwitch( | 430 (!base::CommandLine::ForCurrentProcess()->HasSwitch( |
| 432 ::switches::kUseNewVirtualKeyboardBehavior) || | 431 ::switches::kUseNewVirtualKeyboardBehavior) || |
| 433 keyboard::KeyboardController::GetInstance()->keyboard_locked()); | 432 keyboard::KeyboardController::GetInstance()->keyboard_locked()); |
| 434 | 433 |
| 435 keyboard_bounds_ = new_bounds; | 434 keyboard_bounds_ = new_bounds; |
| 436 LayoutShelfAndUpdateBounds(change_work_area); | 435 LayoutShelfAndUpdateBounds(change_work_area); |
| 437 | 436 |
| 438 // On login screen if keyboard has been just hidden, update bounds just once | 437 // On login screen if keyboard has been just hidden, update bounds just once |
| 439 // but ignore target_bounds.work_area_insets since shelf overlaps with login | 438 // but ignore target_bounds.work_area_insets since shelf overlaps with login |
| 440 // window. | 439 // window. |
| 441 if (WmShell::Get()->GetSessionStateDelegate()->IsUserSessionBlocked() && | 440 if (WmShell::Get()->session_controller()->IsUserSessionBlocked() && |
| 442 keyboard_is_about_to_hide) { | 441 keyboard_is_about_to_hide) { |
| 443 WmWindow* window = WmWindow::Get(shelf_widget_->GetNativeWindow()); | 442 WmWindow* window = WmWindow::Get(shelf_widget_->GetNativeWindow()); |
| 444 WmShell::Get()->SetDisplayWorkAreaInsets(window, gfx::Insets()); | 443 WmShell::Get()->SetDisplayWorkAreaInsets(window, gfx::Insets()); |
| 445 } | 444 } |
| 446 } | 445 } |
| 447 | 446 |
| 448 void ShelfLayoutManager::OnKeyboardClosed() { | 447 void ShelfLayoutManager::OnKeyboardClosed() { |
| 449 keyboard_observer_.RemoveAll(); | 448 keyboard_observer_.RemoveAll(); |
| 450 } | 449 } |
| 451 | 450 |
| (...skipping 697 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1149 gesture_drag_status_ = GESTURE_DRAG_NONE; | 1148 gesture_drag_status_ = GESTURE_DRAG_NONE; |
| 1150 } | 1149 } |
| 1151 | 1150 |
| 1152 void ShelfLayoutManager::CancelGestureDrag() { | 1151 void ShelfLayoutManager::CancelGestureDrag() { |
| 1153 gesture_drag_status_ = GESTURE_DRAG_CANCEL_IN_PROGRESS; | 1152 gesture_drag_status_ = GESTURE_DRAG_CANCEL_IN_PROGRESS; |
| 1154 UpdateVisibilityState(); | 1153 UpdateVisibilityState(); |
| 1155 gesture_drag_status_ = GESTURE_DRAG_NONE; | 1154 gesture_drag_status_ = GESTURE_DRAG_NONE; |
| 1156 } | 1155 } |
| 1157 | 1156 |
| 1158 } // namespace ash | 1157 } // namespace ash |
| OLD | NEW |