| 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/wm/workspace_controller.h" | 5 #include "ash/wm/workspace_controller.h" |
| 6 | 6 |
| 7 #include "ash/root_window_controller.h" | 7 #include "ash/root_window_controller.h" |
| 8 #include "ash/shelf/shelf_layout_manager.h" | 8 #include "ash/shelf/shelf_layout_manager.h" |
| 9 #include "ash/shell.h" | 9 #include "ash/shell.h" |
| 10 #include "ash/shell_window_ids.h" | 10 #include "ash/shell_window_ids.h" |
| (...skipping 27 matching lines...) Expand all Loading... |
| 38 !wm::GetWindowState(window)->IsMinimized() && | 38 !wm::GetWindowState(window)->IsMinimized() && |
| 39 window->type() != aura::client::WINDOW_TYPE_POPUP && | 39 window->type() != aura::client::WINDOW_TYPE_POPUP && |
| 40 !window->transient_parent()); | 40 !window->transient_parent()); |
| 41 } | 41 } |
| 42 | 42 |
| 43 } // namespace | 43 } // namespace |
| 44 | 44 |
| 45 WorkspaceController::WorkspaceController(aura::Window* viewport) | 45 WorkspaceController::WorkspaceController(aura::Window* viewport) |
| 46 : viewport_(viewport), | 46 : viewport_(viewport), |
| 47 shelf_(NULL), | 47 shelf_(NULL), |
| 48 event_handler_(new WorkspaceEventHandler(viewport_)) { | 48 event_handler_(new WorkspaceEventHandler), |
| 49 layout_manager_(new WorkspaceLayoutManager(viewport)) { |
| 49 SetWindowVisibilityAnimationTransition( | 50 SetWindowVisibilityAnimationTransition( |
| 50 viewport_, views::corewm::ANIMATE_NONE); | 51 viewport_, views::corewm::ANIMATE_NONE); |
| 51 | 52 |
| 52 // The layout-manager cannot be created in the initializer list since it | |
| 53 // depends on the window to have been initialized. | |
| 54 layout_manager_ = new WorkspaceLayoutManager(viewport_); | |
| 55 viewport_->SetLayoutManager(layout_manager_); | 53 viewport_->SetLayoutManager(layout_manager_); |
| 56 | 54 viewport_->AddPreTargetHandler(event_handler_.get()); |
| 57 viewport_->Show(); | 55 viewport_->AddPostTargetHandler(event_handler_.get()); |
| 58 } | 56 } |
| 59 | 57 |
| 60 WorkspaceController::~WorkspaceController() { | 58 WorkspaceController::~WorkspaceController() { |
| 61 viewport_->SetLayoutManager(NULL); | 59 viewport_->SetLayoutManager(NULL); |
| 62 viewport_->SetEventFilter(NULL); | |
| 63 viewport_->RemovePreTargetHandler(event_handler_.get()); | 60 viewport_->RemovePreTargetHandler(event_handler_.get()); |
| 64 viewport_->RemovePostTargetHandler(event_handler_.get()); | 61 viewport_->RemovePostTargetHandler(event_handler_.get()); |
| 65 } | 62 } |
| 66 | 63 |
| 67 WorkspaceWindowState WorkspaceController::GetWindowState() const { | 64 WorkspaceWindowState WorkspaceController::GetWindowState() const { |
| 68 if (!shelf_) | 65 if (!shelf_) |
| 69 return WORKSPACE_WINDOW_STATE_DEFAULT; | 66 return WORKSPACE_WINDOW_STATE_DEFAULT; |
| 70 const aura::Window* topmost_fullscreen_window = GetRootWindowController( | 67 const aura::Window* topmost_fullscreen_window = GetRootWindowController( |
| 71 viewport_->GetRootWindow())->GetWindowForFullscreenMode(); | 68 viewport_->GetRootWindow())->GetWindowForFullscreenMode(); |
| 72 if (topmost_fullscreen_window && | 69 if (topmost_fullscreen_window && |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 140 settings.SetTweenType(gfx::Tween::EASE_OUT); | 137 settings.SetTweenType(gfx::Tween::EASE_OUT); |
| 141 settings.SetTransitionDuration( | 138 settings.SetTransitionDuration( |
| 142 base::TimeDelta::FromMilliseconds(kCrossFadeDurationMS)); | 139 base::TimeDelta::FromMilliseconds(kCrossFadeDurationMS)); |
| 143 viewport_->layer()->SetTransform(gfx::Transform()); | 140 viewport_->layer()->SetTransform(gfx::Transform()); |
| 144 viewport_->layer()->SetOpacity(1.0f); | 141 viewport_->layer()->SetOpacity(1.0f); |
| 145 } | 142 } |
| 146 } | 143 } |
| 147 | 144 |
| 148 } // namespace internal | 145 } // namespace internal |
| 149 } // namespace ash | 146 } // namespace ash |
| OLD | NEW |