OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 "mash/wm/window_manager.h" | 5 #include "mash/wm/window_manager.h" |
6 | 6 |
7 #include <stdint.h> | 7 #include <stdint.h> |
8 #include <utility> | 8 #include <utility> |
9 | 9 |
10 #include "components/mus/common/types.h" | 10 #include "components/mus/common/types.h" |
(...skipping 21 matching lines...) Expand all Loading... |
32 if (!root_controller_) | 32 if (!root_controller_) |
33 return; | 33 return; |
34 for (auto container : root_controller_->root()->children()) { | 34 for (auto container : root_controller_->root()->children()) { |
35 container->RemoveObserver(this); | 35 container->RemoveObserver(this); |
36 for (auto child : container->children()) | 36 for (auto child : container->children()) |
37 child->RemoveObserver(this); | 37 child->RemoveObserver(this); |
38 } | 38 } |
39 } | 39 } |
40 | 40 |
41 void WindowManager::Initialize(RootWindowController* root_controller, | 41 void WindowManager::Initialize(RootWindowController* root_controller, |
42 mash::shell::mojom::Shell* shell) { | 42 session::mojom::Session* session) { |
43 DCHECK(root_controller); | 43 DCHECK(root_controller); |
44 DCHECK(!root_controller_); | 44 DCHECK(!root_controller_); |
45 root_controller_ = root_controller; | 45 root_controller_ = root_controller; |
46 // The children of the root are considered containers. | 46 // The children of the root are considered containers. |
47 for (auto container : root_controller_->root()->children()) { | 47 for (auto container : root_controller_->root()->children()) { |
48 container->AddObserver(this); | 48 container->AddObserver(this); |
49 for (auto child : container->children()) | 49 for (auto child : container->children()) |
50 child->AddObserver(this); | 50 child->AddObserver(this); |
51 } | 51 } |
52 | 52 |
53 // The insets are roughly what is needed by CustomFrameView. The expectation | 53 // The insets are roughly what is needed by CustomFrameView. The expectation |
54 // is at some point we'll write our own NonClientFrameView and get the insets | 54 // is at some point we'll write our own NonClientFrameView and get the insets |
55 // from it. | 55 // from it. |
56 mus::mojom::FrameDecorationValuesPtr frame_decoration_values = | 56 mus::mojom::FrameDecorationValuesPtr frame_decoration_values = |
57 mus::mojom::FrameDecorationValues::New(); | 57 mus::mojom::FrameDecorationValues::New(); |
58 const gfx::Insets client_area_insets = | 58 const gfx::Insets client_area_insets = |
59 NonClientFrameController::GetPreferredClientAreaInsets(); | 59 NonClientFrameController::GetPreferredClientAreaInsets(); |
60 frame_decoration_values->normal_client_area_insets = | 60 frame_decoration_values->normal_client_area_insets = |
61 mojo::Insets::From(client_area_insets); | 61 mojo::Insets::From(client_area_insets); |
62 frame_decoration_values->maximized_client_area_insets = | 62 frame_decoration_values->maximized_client_area_insets = |
63 mojo::Insets::From(client_area_insets); | 63 mojo::Insets::From(client_area_insets); |
64 frame_decoration_values->max_title_bar_button_width = | 64 frame_decoration_values->max_title_bar_button_width = |
65 NonClientFrameController::GetMaxTitleBarButtonWidth(); | 65 NonClientFrameController::GetMaxTitleBarButtonWidth(); |
66 window_manager_client_->SetFrameDecorationValues( | 66 window_manager_client_->SetFrameDecorationValues( |
67 std::move(frame_decoration_values)); | 67 std::move(frame_decoration_values)); |
68 | 68 |
69 if (shell) | 69 if (session) |
70 shell->AddScreenlockStateListener(binding_.CreateInterfacePtrAndBind()); | 70 session->AddScreenlockStateListener(binding_.CreateInterfacePtrAndBind()); |
71 } | 71 } |
72 | 72 |
73 gfx::Rect WindowManager::CalculateDefaultBounds(mus::Window* window) const { | 73 gfx::Rect WindowManager::CalculateDefaultBounds(mus::Window* window) const { |
74 DCHECK(root_controller_); | 74 DCHECK(root_controller_); |
75 int width, height; | 75 int width, height; |
76 const gfx::Size pref = GetWindowPreferredSize(window); | 76 const gfx::Size pref = GetWindowPreferredSize(window); |
77 const mus::Window* root = root_controller_->root(); | 77 const mus::Window* root = root_controller_->root(); |
78 if (pref.IsEmpty()) { | 78 if (pref.IsEmpty()) { |
79 width = root->bounds().width() - 240; | 79 width = root->bounds().width() - 240; |
80 height = root->bounds().height() - 240; | 80 height = root->bounds().height() - 240; |
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
167 | 167 |
168 void WindowManager::ScreenlockStateChanged(bool locked) { | 168 void WindowManager::ScreenlockStateChanged(bool locked) { |
169 // Hide USER_PRIVATE windows when the screen is locked. | 169 // Hide USER_PRIVATE windows when the screen is locked. |
170 mus::Window* window = root_controller_->GetWindowForContainer( | 170 mus::Window* window = root_controller_->GetWindowForContainer( |
171 mash::wm::mojom::Container::USER_PRIVATE); | 171 mash::wm::mojom::Container::USER_PRIVATE); |
172 window->SetVisible(!locked); | 172 window->SetVisible(!locked); |
173 } | 173 } |
174 | 174 |
175 } // namespace wm | 175 } // namespace wm |
176 } // namespace mash | 176 } // namespace mash |
OLD | NEW |