| Index: ash/shelf/shelf_layout_manager.cc
|
| diff --git a/ash/shelf/shelf_layout_manager.cc b/ash/shelf/shelf_layout_manager.cc
|
| index f13ea079023459d5b94dccd053abe87324ffcd63..d1aeddd4d86c11c28dded762e8c97dac54657935 100644
|
| --- a/ash/shelf/shelf_layout_manager.cc
|
| +++ b/ash/shelf/shelf_layout_manager.cc
|
| @@ -393,19 +393,21 @@ void ShelfLayoutManager::RemoveObserver(ShelfLayoutManagerObserver* observer) {
|
| // ShelfLayoutManager, Gesture functions:
|
|
|
| void ShelfLayoutManager::OnGestureEdgeSwipe(const ui::GestureEvent& gesture) {
|
| - // Edge swipe should exit fullscreen, show the tray, and disable auto-hide.
|
| -
|
| - if (workspace_controller_->GetWindowState() ==
|
| - WORKSPACE_WINDOW_STATE_FULL_SCREEN) {
|
| - accelerators::ToggleFullscreen();
|
| + WorkspaceWindowState window_state(workspace_controller_->GetWindowState());
|
| + if (window_state == WORKSPACE_WINDOW_STATE_FULL_SCREEN) {
|
| + const aura::Window* fullscreen_window = GetRootWindowController(
|
| + root_window_)->GetWindowForFullscreenMode();
|
| + if (wm::GetWindowState(fullscreen_window)->hide_shelf_when_fullscreen())
|
| + return;
|
| + } else if (CalculateShelfVisibility() == SHELF_VISIBLE) {
|
| + // If the shelf is permanently visible, don't make an effort to display it.
|
| + return;
|
| }
|
|
|
| - ShelfVisibilityState visibility = CalculateShelfVisibility();
|
| - if (visibility == SHELF_AUTO_HIDE &&
|
| - CalculateAutoHideState(visibility) == SHELF_AUTO_HIDE_HIDDEN) {
|
| - SetState(SHELF_VISIBLE);
|
| - SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_NEVER);
|
| - }
|
| + gesture_drag_auto_hide_state_ = SHELF_AUTO_HIDE_SHOWN;
|
| + gesture_drag_status_ = GESTURE_DRAG_COMPLETE_IN_PROGRESS;
|
| + SetState(SHELF_AUTO_HIDE);
|
| + gesture_drag_status_ = GESTURE_DRAG_NONE;
|
| }
|
|
|
| void ShelfLayoutManager::StartGestureDrag(const ui::GestureEvent& gesture) {
|
|
|