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 24 matching lines...) Expand all Loading... |
35 // |shelf|. | 35 // |shelf|. |
36 bool IsDockedAreaVisible(const ShelfLayoutManager* shelf) { | 36 bool IsDockedAreaVisible(const ShelfLayoutManager* shelf) { |
37 return shelf->dock_bounds().width() > 0; | 37 return shelf->dock_bounds().width() > 0; |
38 } | 38 } |
39 | 39 |
40 } // namespace | 40 } // namespace |
41 | 41 |
42 WorkspaceController::WorkspaceController(aura::Window* viewport) | 42 WorkspaceController::WorkspaceController(aura::Window* viewport) |
43 : viewport_(viewport), | 43 : viewport_(viewport), |
44 shelf_(NULL), | 44 shelf_(NULL), |
45 event_handler_(new WorkspaceEventHandler(viewport_)) { | 45 event_handler_(new WorkspaceEventHandler), |
| 46 layout_manager_(new WorkspaceLayoutManager(viewport)) { |
46 SetWindowVisibilityAnimationTransition( | 47 SetWindowVisibilityAnimationTransition( |
47 viewport_, views::corewm::ANIMATE_NONE); | 48 viewport_, views::corewm::ANIMATE_NONE); |
48 | 49 |
49 // The layout-manager cannot be created in the initializer list since it | |
50 // depends on the window to have been initialized. | |
51 layout_manager_ = new WorkspaceLayoutManager(viewport_); | |
52 viewport_->SetLayoutManager(layout_manager_); | 50 viewport_->SetLayoutManager(layout_manager_); |
53 | 51 viewport_->AddPreTargetHandler(event_handler_.get()); |
54 viewport_->Show(); | 52 viewport_->AddPostTargetHandler(event_handler_.get()); |
55 } | 53 } |
56 | 54 |
57 WorkspaceController::~WorkspaceController() { | 55 WorkspaceController::~WorkspaceController() { |
58 viewport_->SetLayoutManager(NULL); | 56 viewport_->SetLayoutManager(NULL); |
59 viewport_->SetEventFilter(NULL); | |
60 viewport_->RemovePreTargetHandler(event_handler_.get()); | 57 viewport_->RemovePreTargetHandler(event_handler_.get()); |
61 viewport_->RemovePostTargetHandler(event_handler_.get()); | 58 viewport_->RemovePostTargetHandler(event_handler_.get()); |
62 } | 59 } |
63 | 60 |
64 WorkspaceWindowState WorkspaceController::GetWindowState() const { | 61 WorkspaceWindowState WorkspaceController::GetWindowState() const { |
65 if (!shelf_) | 62 if (!shelf_) |
66 return WORKSPACE_WINDOW_STATE_DEFAULT; | 63 return WORKSPACE_WINDOW_STATE_DEFAULT; |
67 const aura::Window* topmost_fullscreen_window = GetRootWindowController( | 64 const aura::Window* topmost_fullscreen_window = GetRootWindowController( |
68 viewport_->GetRootWindow())->GetWindowForFullscreenMode(); | 65 viewport_->GetRootWindow())->GetWindowForFullscreenMode(); |
69 if (topmost_fullscreen_window && | 66 if (topmost_fullscreen_window && |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
136 settings.SetTweenType(gfx::Tween::EASE_OUT); | 133 settings.SetTweenType(gfx::Tween::EASE_OUT); |
137 settings.SetTransitionDuration( | 134 settings.SetTransitionDuration( |
138 base::TimeDelta::FromMilliseconds(kCrossFadeDurationMS)); | 135 base::TimeDelta::FromMilliseconds(kCrossFadeDurationMS)); |
139 viewport_->layer()->SetTransform(gfx::Transform()); | 136 viewport_->layer()->SetTransform(gfx::Transform()); |
140 viewport_->layer()->SetOpacity(1.0f); | 137 viewport_->layer()->SetOpacity(1.0f); |
141 } | 138 } |
142 } | 139 } |
143 | 140 |
144 } // namespace internal | 141 } // namespace internal |
145 } // namespace ash | 142 } // namespace ash |
OLD | NEW |