Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(118)

Side by Side Diff: ash/mus/root_window_controller.cc

Issue 2029883002: Moves mash/wm into ash/mus (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@remove_static_assert
Patch Set: depend on test_wm Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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/root_window_controller.h" 5 #include "ash/mus/root_window_controller.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 8
9 #include <map> 9 #include <map>
10 #include <sstream> 10 #include <sstream>
11 11
12 #include "ash/common/shell_window_ids.h" 12 #include "ash/common/shell_window_ids.h"
13 #include "ash/common/wm/always_on_top_controller.h" 13 #include "ash/common/wm/always_on_top_controller.h"
14 #include "ash/common/wm/dock/docked_window_layout_manager.h" 14 #include "ash/common/wm/dock/docked_window_layout_manager.h"
15 #include "ash/common/wm/panels/panel_layout_manager.h" 15 #include "ash/common/wm/panels/panel_layout_manager.h"
16 #include "ash/common/wm/workspace/workspace_layout_manager.h" 16 #include "ash/common/wm/workspace/workspace_layout_manager.h"
17 #include "ash/common/wm/workspace/workspace_layout_manager_delegate.h" 17 #include "ash/common/wm/workspace/workspace_layout_manager_delegate.h"
18 #include "ash/mus/background_layout.h"
19 #include "ash/mus/bridge/wm_globals_mus.h"
20 #include "ash/mus/bridge/wm_root_window_controller_mus.h"
21 #include "ash/mus/bridge/wm_shelf_mus.h"
22 #include "ash/mus/bridge/wm_window_mus.h"
23 #include "ash/mus/container_ids.h"
24 #include "ash/mus/fill_layout.h"
25 #include "ash/mus/screenlock_layout.h"
26 #include "ash/mus/shadow_controller.h"
27 #include "ash/mus/shelf_layout_manager.h"
28 #include "ash/mus/status_layout_manager.h"
29 #include "ash/mus/window_manager.h"
30 #include "ash/mus/window_manager_application.h"
18 #include "base/bind.h" 31 #include "base/bind.h"
19 #include "base/command_line.h" 32 #include "base/command_line.h"
20 #include "base/memory/ptr_util.h" 33 #include "base/memory/ptr_util.h"
21 #include "components/mus/common/event_matcher_util.h" 34 #include "components/mus/common/event_matcher_util.h"
22 #include "components/mus/common/switches.h" 35 #include "components/mus/common/switches.h"
23 #include "components/mus/common/util.h" 36 #include "components/mus/common/util.h"
24 #include "components/mus/public/cpp/property_type_converters.h" 37 #include "components/mus/public/cpp/property_type_converters.h"
25 #include "components/mus/public/cpp/window.h" 38 #include "components/mus/public/cpp/window.h"
26 #include "components/mus/public/cpp/window_tree_client.h" 39 #include "components/mus/public/cpp/window_tree_client.h"
27 #include "components/mus/public/cpp/window_tree_host_factory.h" 40 #include "components/mus/public/cpp/window_tree_host_factory.h"
28 #include "components/mus/public/interfaces/window_manager.mojom.h" 41 #include "components/mus/public/interfaces/window_manager.mojom.h"
29 #include "mash/session/public/interfaces/session.mojom.h" 42 #include "mash/session/public/interfaces/session.mojom.h"
30 #include "mash/wm/background_layout.h"
31 #include "mash/wm/bridge/wm_globals_mus.h"
32 #include "mash/wm/bridge/wm_root_window_controller_mus.h"
33 #include "mash/wm/bridge/wm_shelf_mus.h"
34 #include "mash/wm/bridge/wm_window_mus.h"
35 #include "mash/wm/container_ids.h"
36 #include "mash/wm/fill_layout.h"
37 #include "mash/wm/screenlock_layout.h"
38 #include "mash/wm/shadow_controller.h"
39 #include "mash/wm/shelf_layout_manager.h"
40 #include "mash/wm/status_layout_manager.h"
41 #include "mash/wm/window_manager.h"
42 #include "mash/wm/window_manager_application.h"
43 #include "mojo/public/cpp/bindings/type_converter.h" 43 #include "mojo/public/cpp/bindings/type_converter.h"
44 #include "services/shell/public/cpp/connector.h" 44 #include "services/shell/public/cpp/connector.h"
45 #include "ui/display/mojo/display_type_converters.h" 45 #include "ui/display/mojo/display_type_converters.h"
46 46
47 using ash::mojom::Container; 47 using ash::mojom::Container;
48 48
49 namespace mash { 49 namespace ash {
50 namespace wm { 50 namespace mus {
51 namespace { 51 namespace {
52 52
53 const uint32_t kWindowSwitchAccelerator = 1; 53 const uint32_t kWindowSwitchAccelerator = 1;
54 54
55 void AssertTrue(bool success) { 55 void AssertTrue(bool success) {
56 DCHECK(success); 56 DCHECK(success);
57 } 57 }
58 58
59 int ContainerToLocalId(Container container) { 59 int ContainerToLocalId(Container container) {
60 return static_cast<int>(container); 60 return static_cast<int>(container);
61 } 61 }
62 62
63 class WorkspaceLayoutManagerDelegateImpl 63 class WorkspaceLayoutManagerDelegateImpl
64 : public ash::wm::WorkspaceLayoutManagerDelegate { 64 : public wm::WorkspaceLayoutManagerDelegate {
65 public: 65 public:
66 explicit WorkspaceLayoutManagerDelegateImpl( 66 explicit WorkspaceLayoutManagerDelegateImpl(
67 WmRootWindowControllerMus* root_window_controller) 67 WmRootWindowControllerMus* root_window_controller)
68 : root_window_controller_(root_window_controller) {} 68 : root_window_controller_(root_window_controller) {}
69 ~WorkspaceLayoutManagerDelegateImpl() override = default; 69 ~WorkspaceLayoutManagerDelegateImpl() override = default;
70 70
71 // WorkspaceLayoutManagerDelegate: 71 // WorkspaceLayoutManagerDelegate:
72 void UpdateShelfVisibility() override { NOTIMPLEMENTED(); } 72 void UpdateShelfVisibility() override { NOTIMPLEMENTED(); }
73 void OnFullscreenStateChanged(bool is_fullscreen) override { 73 void OnFullscreenStateChanged(bool is_fullscreen) override {
74 // TODO(sky): this should only do something if there is a shelf, see 74 // TODO(sky): this should only do something if there is a shelf, see
75 // implementation in ash/shell.cc. 75 // implementation in ash/shell.cc.
76 NOTIMPLEMENTED(); 76 NOTIMPLEMENTED();
77 root_window_controller_->NotifyFullscreenStateChange(is_fullscreen); 77 root_window_controller_->NotifyFullscreenStateChange(is_fullscreen);
78 } 78 }
79 79
80 private: 80 private:
81 WmRootWindowControllerMus* root_window_controller_; 81 WmRootWindowControllerMus* root_window_controller_;
82 82
83 DISALLOW_COPY_AND_ASSIGN(WorkspaceLayoutManagerDelegateImpl); 83 DISALLOW_COPY_AND_ASSIGN(WorkspaceLayoutManagerDelegateImpl);
84 }; 84 };
85 85
86 } // namespace 86 } // namespace
87 87
88 // static 88 // static
89 RootWindowController* RootWindowController::CreateFromDisplay( 89 RootWindowController* RootWindowController::CreateFromDisplay(
90 WindowManagerApplication* app, 90 WindowManagerApplication* app,
91 mus::mojom::DisplayPtr display, 91 ::mus::mojom::DisplayPtr display,
92 mus::mojom::WindowTreeClientRequest client_request) { 92 ::mus::mojom::WindowTreeClientRequest client_request) {
93 RootWindowController* controller = new RootWindowController(app); 93 RootWindowController* controller = new RootWindowController(app);
94 controller->display_ = display.To<display::Display>(); 94 controller->display_ = display.To<display::Display>();
95 new mus::WindowTreeClient(controller, controller->window_manager_.get(), 95 new ::mus::WindowTreeClient(controller, controller->window_manager_.get(),
96 std::move(client_request)); 96 std::move(client_request));
97 return controller; 97 return controller;
98 } 98 }
99 99
100 void RootWindowController::Destroy() { 100 void RootWindowController::Destroy() {
101 // See class description for details on lifetime. 101 // See class description for details on lifetime.
102 if (root_) { 102 if (root_) {
103 delete root_->window_tree(); 103 delete root_->window_tree();
104 } else { 104 } else {
105 // This case only happens if we're destroyed before OnEmbed(). 105 // This case only happens if we're destroyed before OnEmbed().
106 delete this; 106 delete this;
107 } 107 }
108 } 108 }
109 109
110 shell::Connector* RootWindowController::GetConnector() { 110 shell::Connector* RootWindowController::GetConnector() {
111 return app_->connector(); 111 return app_->connector();
112 } 112 }
113 113
114 mus::Window* RootWindowController::GetWindowForContainer(Container container) { 114 ::mus::Window* RootWindowController::GetWindowForContainer(
115 Container container) {
115 return root_->GetChildByLocalId(ContainerToLocalId(container)); 116 return root_->GetChildByLocalId(ContainerToLocalId(container));
116 } 117 }
117 118
118 bool RootWindowController::WindowIsContainer(const mus::Window* window) const { 119 bool RootWindowController::WindowIsContainer(
120 const ::mus::Window* window) const {
119 return window && window->local_id() > ContainerToLocalId(Container::ROOT) && 121 return window && window->local_id() > ContainerToLocalId(Container::ROOT) &&
120 window->local_id() < ContainerToLocalId(Container::COUNT); 122 window->local_id() < ContainerToLocalId(Container::COUNT);
121 } 123 }
122 124
123 mus::WindowManagerClient* RootWindowController::window_manager_client() { 125 ::mus::WindowManagerClient* RootWindowController::window_manager_client() {
124 return window_manager_->window_manager_client(); 126 return window_manager_->window_manager_client();
125 } 127 }
126 128
127 void RootWindowController::OnAccelerator(uint32_t id, const ui::Event& event) { 129 void RootWindowController::OnAccelerator(uint32_t id, const ui::Event& event) {
128 switch (id) { 130 switch (id) {
129 case kWindowSwitchAccelerator: 131 case kWindowSwitchAccelerator:
130 window_manager_client()->ActivateNextWindow(); 132 window_manager_client()->ActivateNextWindow();
131 break; 133 break;
132 default: 134 default:
133 app_->OnAccelerator(id, event); 135 app_->OnAccelerator(id, event);
(...skipping 15 matching lines...) Expand all
149 RootWindowController::RootWindowController(WindowManagerApplication* app) 151 RootWindowController::RootWindowController(WindowManagerApplication* app)
150 : app_(app), root_(nullptr), window_count_(0) { 152 : app_(app), root_(nullptr), window_count_(0) {
151 window_manager_.reset(new WindowManager); 153 window_manager_.reset(new WindowManager);
152 } 154 }
153 155
154 RootWindowController::~RootWindowController() {} 156 RootWindowController::~RootWindowController() {}
155 157
156 void RootWindowController::AddAccelerators() { 158 void RootWindowController::AddAccelerators() {
157 window_manager_client()->AddAccelerator( 159 window_manager_client()->AddAccelerator(
158 kWindowSwitchAccelerator, 160 kWindowSwitchAccelerator,
159 mus::CreateKeyMatcher(mus::mojom::KeyboardCode::TAB, 161 ::mus::CreateKeyMatcher(::mus::mojom::KeyboardCode::TAB,
160 mus::mojom::kEventFlagControlDown), 162 ::mus::mojom::kEventFlagControlDown),
161 base::Bind(&AssertTrue)); 163 base::Bind(&AssertTrue));
162 } 164 }
163 165
164 void RootWindowController::OnEmbed(mus::Window* root) { 166 void RootWindowController::OnEmbed(::mus::Window* root) {
165 root_ = root; 167 root_ = root;
166 root_->set_local_id(ContainerToLocalId(Container::ROOT)); 168 root_->set_local_id(ContainerToLocalId(Container::ROOT));
167 root_->AddObserver(this); 169 root_->AddObserver(this);
168 layout_managers_[root_].reset(new FillLayout(root_)); 170 layout_managers_[root_].reset(new FillLayout(root_));
169 171
170 app_->OnRootWindowControllerGotRoot(this); 172 app_->OnRootWindowControllerGotRoot(this);
171 173
172 wm_root_window_controller_.reset( 174 wm_root_window_controller_.reset(
173 new WmRootWindowControllerMus(app_->globals(), this)); 175 new WmRootWindowControllerMus(app_->globals(), this));
174 176
175 CreateContainers(); 177 CreateContainers();
176 178
177 for (size_t i = 0; i < kNumActivationContainers; ++i) { 179 for (size_t i = 0; i < kNumActivationContainers; ++i) {
178 window_manager_client()->AddActivationParent( 180 window_manager_client()->AddActivationParent(
179 GetWindowForContainer(kActivationContainers[i])); 181 GetWindowForContainer(kActivationContainers[i]));
180 } 182 }
181 183
182 ash::wm::WmWindow* always_on_top_container = 184 wm::WmWindow* always_on_top_container =
183 wm::WmWindowMus::Get(root)->GetChildByShellWindowId( 185 WmWindowMus::Get(root)->GetChildByShellWindowId(
184 ash::kShellWindowId_AlwaysOnTopContainer); 186 kShellWindowId_AlwaysOnTopContainer);
185 always_on_top_controller_.reset( 187 always_on_top_controller_.reset(
186 new ash::AlwaysOnTopController(always_on_top_container)); 188 new AlwaysOnTopController(always_on_top_container));
187 189
188 AddAccelerators(); 190 AddAccelerators();
189 191
190 window_manager_->Initialize(this, app_->session()); 192 window_manager_->Initialize(this, app_->session());
191 193
192 shadow_controller_.reset(new ShadowController(root->window_tree())); 194 shadow_controller_.reset(new ShadowController(root->window_tree()));
193 195
194 app_->OnRootWindowControllerDoneInit(this); 196 app_->OnRootWindowControllerDoneInit(this);
195 } 197 }
196 198
197 void RootWindowController::OnWindowTreeClientDestroyed( 199 void RootWindowController::OnWindowTreeClientDestroyed(
198 mus::WindowTreeClient* client) { 200 ::mus::WindowTreeClient* client) {
199 shadow_controller_.reset(); 201 shadow_controller_.reset();
200 delete this; 202 delete this;
201 } 203 }
202 204
203 void RootWindowController::OnEventObserved(const ui::Event& event, 205 void RootWindowController::OnEventObserved(const ui::Event& event,
204 mus::Window* target) { 206 ::mus::Window* target) {
205 // Does not use EventObservers. 207 // Does not use EventObservers.
206 } 208 }
207 209
208 void RootWindowController::OnWindowDestroyed(mus::Window* window) { 210 void RootWindowController::OnWindowDestroyed(::mus::Window* window) {
209 DCHECK_EQ(window, root_); 211 DCHECK_EQ(window, root_);
210 app_->OnRootWindowDestroyed(this); 212 app_->OnRootWindowDestroyed(this);
211 root_->RemoveObserver(this); 213 root_->RemoveObserver(this);
212 // Delete the |window_manager_| here so that WindowManager doesn't have to 214 // Delete the |window_manager_| here so that WindowManager doesn't have to
213 // worry about the possibility of |root_| being null. 215 // worry about the possibility of |root_| being null.
214 window_manager_.reset(); 216 window_manager_.reset();
215 root_ = nullptr; 217 root_ = nullptr;
216 } 218 }
217 219
218 void RootWindowController::OnShelfWindowAvailable() { 220 void RootWindowController::OnShelfWindowAvailable() {
219 ash::DockedWindowLayoutManager::Get(WmWindowMus::Get(root_)) 221 DockedWindowLayoutManager::Get(WmWindowMus::Get(root_))
220 ->SetShelf(wm_shelf_.get()); 222 ->SetShelf(wm_shelf_.get());
221 223
222 ash::PanelLayoutManager::Get(WmWindowMus::Get(root_)) 224 PanelLayoutManager::Get(WmWindowMus::Get(root_))->SetShelf(wm_shelf_.get());
223 ->SetShelf(wm_shelf_.get());
224 225
225 // TODO: http://crbug.com/614182 Ash's ShelfLayoutManager implements 226 // TODO: http://crbug.com/614182 Ash's ShelfLayoutManager implements
226 // DockedWindowLayoutManagerObserver so that it can inset by the docked 227 // DockedWindowLayoutManagerObserver so that it can inset by the docked
227 // windows. 228 // windows.
228 // docked_layout_manager_->AddObserver(shelf_->shelf_layout_manager()); 229 // docked_layout_manager_->AddObserver(shelf_->shelf_layout_manager());
229 } 230 }
230 231
231 void RootWindowController::CreateContainer(Container container, 232 void RootWindowController::CreateContainer(Container container,
232 Container parent_container) { 233 Container parent_container) {
233 // Set the window's name to the container name (e.g. "Container::LOGIN"), 234 // Set the window's name to the container name (e.g. "Container::LOGIN"),
234 // which makes the window hierarchy easier to read. 235 // which makes the window hierarchy easier to read.
235 std::map<std::string, std::vector<uint8_t>> properties; 236 std::map<std::string, std::vector<uint8_t>> properties;
236 std::ostringstream container_name; 237 std::ostringstream container_name;
237 container_name << container; 238 container_name << container;
238 properties[mus::mojom::WindowManager::kName_Property] = 239 properties[::mus::mojom::WindowManager::kName_Property] =
239 mojo::ConvertTo<std::vector<uint8_t>>(container_name.str()); 240 mojo::ConvertTo<std::vector<uint8_t>>(container_name.str());
240 241
241 mus::Window* window = root_->window_tree()->NewWindow(&properties); 242 ::mus::Window* window = root_->window_tree()->NewWindow(&properties);
242 window->set_local_id(ContainerToLocalId(container)); 243 window->set_local_id(ContainerToLocalId(container));
243 layout_managers_[window].reset(new FillLayout(window)); 244 layout_managers_[window].reset(new FillLayout(window));
244 WmWindowMus::Get(window)->SetShellWindowId( 245 WmWindowMus::Get(window)->SetShellWindowId(
245 MashContainerToAshContainer(container)); 246 MashContainerToAshContainer(container));
246 247
247 // User private windows are hidden by default until the window manager learns 248 // User private windows are hidden by default until the window manager learns
248 // the lock state, so their contents are never accidentally revealed. Tests, 249 // the lock state, so their contents are never accidentally revealed. Tests,
249 // however, usually assume the screen is unlocked. 250 // however, usually assume the screen is unlocked.
250 const bool is_test = base::CommandLine::ForCurrentProcess()->HasSwitch( 251 const bool is_test = base::CommandLine::ForCurrentProcess()->HasSwitch(
251 mus::switches::kUseTestConfig); 252 ::mus::switches::kUseTestConfig);
252 window->SetVisible(container != Container::USER_PRIVATE || is_test); 253 window->SetVisible(container != Container::USER_PRIVATE || is_test);
253 254
254 mus::Window* parent = 255 ::mus::Window* parent =
255 root_->GetChildByLocalId(ContainerToLocalId(parent_container)); 256 root_->GetChildByLocalId(ContainerToLocalId(parent_container));
256 parent->AddChild(window); 257 parent->AddChild(window);
257 } 258 }
258 259
259 void RootWindowController::CreateContainers() { 260 void RootWindowController::CreateContainers() {
260 CreateContainer(Container::ALL_USER_BACKGROUND, Container::ROOT); 261 CreateContainer(Container::ALL_USER_BACKGROUND, Container::ROOT);
261 CreateContainer(Container::USER, Container::ROOT); 262 CreateContainer(Container::USER, Container::ROOT);
262 CreateContainer(Container::USER_BACKGROUND, Container::USER); 263 CreateContainer(Container::USER_BACKGROUND, Container::USER);
263 CreateContainer(Container::USER_PRIVATE, Container::USER); 264 CreateContainer(Container::USER_PRIVATE, Container::USER);
264 CreateContainer(Container::USER_PRIVATE_WINDOWS, Container::USER_PRIVATE); 265 CreateContainer(Container::USER_PRIVATE_WINDOWS, Container::USER_PRIVATE);
(...skipping 13 matching lines...) Expand all
278 CreateContainer(Container::LOGIN_APP, Container::LOGIN); 279 CreateContainer(Container::LOGIN_APP, Container::LOGIN);
279 CreateContainer(Container::LOGIN_SHELF, Container::LOGIN); 280 CreateContainer(Container::LOGIN_SHELF, Container::LOGIN);
280 CreateContainer(Container::STATUS, Container::ROOT); 281 CreateContainer(Container::STATUS, Container::ROOT);
281 CreateContainer(Container::BUBBLES, Container::ROOT); 282 CreateContainer(Container::BUBBLES, Container::ROOT);
282 CreateContainer(Container::SYSTEM_MODAL_WINDOWS, Container::ROOT); 283 CreateContainer(Container::SYSTEM_MODAL_WINDOWS, Container::ROOT);
283 CreateContainer(Container::KEYBOARD, Container::ROOT); 284 CreateContainer(Container::KEYBOARD, Container::ROOT);
284 CreateContainer(Container::MENUS, Container::ROOT); 285 CreateContainer(Container::MENUS, Container::ROOT);
285 CreateContainer(Container::DRAG_AND_TOOLTIPS, Container::ROOT); 286 CreateContainer(Container::DRAG_AND_TOOLTIPS, Container::ROOT);
286 287
287 // Override the default layout managers for certain containers. 288 // Override the default layout managers for certain containers.
288 mus::Window* user_background = 289 ::mus::Window* user_background =
289 GetWindowForContainer(Container::USER_BACKGROUND); 290 GetWindowForContainer(Container::USER_BACKGROUND);
290 layout_managers_[user_background].reset( 291 layout_managers_[user_background].reset(
291 new BackgroundLayout(user_background)); 292 new BackgroundLayout(user_background));
292 293
293 mus::Window* login_app = GetWindowForContainer(Container::LOGIN_APP); 294 ::mus::Window* login_app = GetWindowForContainer(Container::LOGIN_APP);
294 layout_managers_[login_app].reset(new ScreenlockLayout(login_app)); 295 layout_managers_[login_app].reset(new ScreenlockLayout(login_app));
295 296
296 mus::Window* user_shelf = 297 ::mus::Window* user_shelf =
297 GetWindowForContainer(Container::USER_PRIVATE_SHELF); 298 GetWindowForContainer(Container::USER_PRIVATE_SHELF);
298 ShelfLayoutManager* shelf_layout_manager = 299 ShelfLayoutManager* shelf_layout_manager =
299 new ShelfLayoutManager(user_shelf, this); 300 new ShelfLayoutManager(user_shelf, this);
300 layout_managers_[user_shelf].reset(shelf_layout_manager); 301 layout_managers_[user_shelf].reset(shelf_layout_manager);
301 302
302 wm_shelf_.reset(new WmShelfMus(shelf_layout_manager)); 303 wm_shelf_.reset(new WmShelfMus(shelf_layout_manager));
303 304
304 mus::Window* status = GetWindowForContainer(Container::STATUS); 305 ::mus::Window* status = GetWindowForContainer(Container::STATUS);
305 layout_managers_[status].reset(new StatusLayoutManager(status)); 306 layout_managers_[status].reset(new StatusLayoutManager(status));
306 307
307 mus::Window* user_private_windows = 308 ::mus::Window* user_private_windows =
308 GetWindowForContainer(Container::USER_PRIVATE_WINDOWS); 309 GetWindowForContainer(Container::USER_PRIVATE_WINDOWS);
309 // WorkspaceLayoutManager is not a mash::wm::LayoutManager (it's an 310 // WorkspaceLayoutManager is not a mash::wm::LayoutManager (it's an
msw 2016/06/02 20:28:34 nit: s/an/a/
sky 2016/06/02 21:31:51 Done.
310 // ash::wm::LayoutManager), so it can't be in |layout_managers_|. 311 // wm::LayoutManager), so it can't be in |layout_managers_|.
311 layout_managers_.erase(user_private_windows); 312 layout_managers_.erase(user_private_windows);
312 std::unique_ptr<WorkspaceLayoutManagerDelegateImpl> 313 std::unique_ptr<WorkspaceLayoutManagerDelegateImpl>
313 workspace_layout_manager_delegate(new WorkspaceLayoutManagerDelegateImpl( 314 workspace_layout_manager_delegate(new WorkspaceLayoutManagerDelegateImpl(
314 wm_root_window_controller_.get())); 315 wm_root_window_controller_.get()));
315 WmWindowMus* user_private_windows_wm = WmWindowMus::Get(user_private_windows); 316 WmWindowMus* user_private_windows_wm = WmWindowMus::Get(user_private_windows);
316 user_private_windows_wm->SetSnapsChildrenToPhysicalPixelBoundary(); 317 user_private_windows_wm->SetSnapsChildrenToPhysicalPixelBoundary();
317 user_private_windows_wm->SetChildrenUseExtendedHitRegion(); 318 user_private_windows_wm->SetChildrenUseExtendedHitRegion();
318 user_private_windows_wm->SetLayoutManager( 319 user_private_windows_wm->SetLayoutManager(
319 base::WrapUnique(new ash::WorkspaceLayoutManager( 320 base::WrapUnique(new WorkspaceLayoutManager(
320 user_private_windows_wm, 321 user_private_windows_wm,
321 std::move(workspace_layout_manager_delegate)))); 322 std::move(workspace_layout_manager_delegate))));
322 323
323 mus::Window* user_private_docked_windows = 324 ::mus::Window* user_private_docked_windows =
324 GetWindowForContainer(Container::USER_PRIVATE_DOCKED_WINDOWS); 325 GetWindowForContainer(Container::USER_PRIVATE_DOCKED_WINDOWS);
325 WmWindowMus* user_private_docked_windows_wm = 326 WmWindowMus* user_private_docked_windows_wm =
326 WmWindowMus::Get(user_private_docked_windows); 327 WmWindowMus::Get(user_private_docked_windows);
327 user_private_docked_windows_wm->SetSnapsChildrenToPhysicalPixelBoundary(); 328 user_private_docked_windows_wm->SetSnapsChildrenToPhysicalPixelBoundary();
328 layout_managers_.erase(user_private_docked_windows); 329 layout_managers_.erase(user_private_docked_windows);
329 user_private_docked_windows_wm->SetChildrenUseExtendedHitRegion(); 330 user_private_docked_windows_wm->SetChildrenUseExtendedHitRegion();
330 user_private_docked_windows_wm->SetLayoutManager(base::WrapUnique( 331 user_private_docked_windows_wm->SetLayoutManager(base::WrapUnique(
331 new ash::DockedWindowLayoutManager(user_private_docked_windows_wm))); 332 new DockedWindowLayoutManager(user_private_docked_windows_wm)));
332 333
333 mus::Window* user_private_panels = 334 ::mus::Window* user_private_panels =
334 GetWindowForContainer(Container::USER_PRIVATE_PANELS); 335 GetWindowForContainer(Container::USER_PRIVATE_PANELS);
335 WmWindowMus* user_private_panels_wm = WmWindowMus::Get(user_private_panels); 336 WmWindowMus* user_private_panels_wm = WmWindowMus::Get(user_private_panels);
336 user_private_panels_wm->SetSnapsChildrenToPhysicalPixelBoundary(); 337 user_private_panels_wm->SetSnapsChildrenToPhysicalPixelBoundary();
337 layout_managers_.erase(user_private_panels); 338 layout_managers_.erase(user_private_panels);
338 user_private_panels_wm->SetChildrenUseExtendedHitRegion(); 339 user_private_panels_wm->SetChildrenUseExtendedHitRegion();
339 user_private_panels_wm->SetLayoutManager( 340 user_private_panels_wm->SetLayoutManager(
340 base::WrapUnique(new ash::PanelLayoutManager(user_private_panels_wm))); 341 base::WrapUnique(new PanelLayoutManager(user_private_panels_wm)));
341 342
342 mus::Window* user_private_always_on_top = 343 ::mus::Window* user_private_always_on_top =
343 GetWindowForContainer(Container::USER_PRIVATE_ALWAYS_ON_TOP_WINDOWS); 344 GetWindowForContainer(Container::USER_PRIVATE_ALWAYS_ON_TOP_WINDOWS);
344 WmWindowMus* user_private_always_on_top_wm = 345 WmWindowMus* user_private_always_on_top_wm =
345 WmWindowMus::Get(user_private_always_on_top); 346 WmWindowMus::Get(user_private_always_on_top);
346 user_private_always_on_top_wm->SetChildrenUseExtendedHitRegion(); 347 user_private_always_on_top_wm->SetChildrenUseExtendedHitRegion();
347 user_private_always_on_top_wm->SetSnapsChildrenToPhysicalPixelBoundary(); 348 user_private_always_on_top_wm->SetSnapsChildrenToPhysicalPixelBoundary();
348 } 349 }
349 350
350 } // namespace wm 351 } // namespace mus
351 } // namespace mash 352 } // namespace ash
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698