OLD | NEW |
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 "mash/wm/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> |
(...skipping 26 matching lines...) Expand all Loading... |
37 #include "mash/wm/screenlock_layout.h" | 37 #include "mash/wm/screenlock_layout.h" |
38 #include "mash/wm/shadow_controller.h" | 38 #include "mash/wm/shadow_controller.h" |
39 #include "mash/wm/shelf_layout_manager.h" | 39 #include "mash/wm/shelf_layout_manager.h" |
40 #include "mash/wm/status_layout_manager.h" | 40 #include "mash/wm/status_layout_manager.h" |
41 #include "mash/wm/window_manager.h" | 41 #include "mash/wm/window_manager.h" |
42 #include "mash/wm/window_manager_application.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; |
| 48 |
47 namespace mash { | 49 namespace mash { |
48 namespace wm { | 50 namespace wm { |
49 namespace { | 51 namespace { |
50 | 52 |
51 const uint32_t kWindowSwitchAccelerator = 1; | 53 const uint32_t kWindowSwitchAccelerator = 1; |
52 | 54 |
53 void AssertTrue(bool success) { | 55 void AssertTrue(bool success) { |
54 DCHECK(success); | 56 DCHECK(success); |
55 } | 57 } |
56 | 58 |
57 int ContainerToLocalId(mojom::Container container) { | 59 int ContainerToLocalId(Container container) { |
58 return static_cast<int>(container); | 60 return static_cast<int>(container); |
59 } | 61 } |
60 | 62 |
61 class WorkspaceLayoutManagerDelegateImpl | 63 class WorkspaceLayoutManagerDelegateImpl |
62 : public ash::wm::WorkspaceLayoutManagerDelegate { | 64 : public ash::wm::WorkspaceLayoutManagerDelegate { |
63 public: | 65 public: |
64 explicit WorkspaceLayoutManagerDelegateImpl( | 66 explicit WorkspaceLayoutManagerDelegateImpl( |
65 WmRootWindowControllerMus* root_window_controller) | 67 WmRootWindowControllerMus* root_window_controller) |
66 : root_window_controller_(root_window_controller) {} | 68 : root_window_controller_(root_window_controller) {} |
67 ~WorkspaceLayoutManagerDelegateImpl() override = default; | 69 ~WorkspaceLayoutManagerDelegateImpl() override = default; |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
102 } else { | 104 } else { |
103 // This case only happens if we're destroyed before OnEmbed(). | 105 // This case only happens if we're destroyed before OnEmbed(). |
104 delete this; | 106 delete this; |
105 } | 107 } |
106 } | 108 } |
107 | 109 |
108 shell::Connector* RootWindowController::GetConnector() { | 110 shell::Connector* RootWindowController::GetConnector() { |
109 return app_->connector(); | 111 return app_->connector(); |
110 } | 112 } |
111 | 113 |
112 mus::Window* RootWindowController::GetWindowForContainer( | 114 mus::Window* RootWindowController::GetWindowForContainer(Container container) { |
113 mojom::Container container) { | |
114 return root_->GetChildByLocalId(ContainerToLocalId(container)); | 115 return root_->GetChildByLocalId(ContainerToLocalId(container)); |
115 } | 116 } |
116 | 117 |
117 bool RootWindowController::WindowIsContainer(const mus::Window* window) const { | 118 bool RootWindowController::WindowIsContainer(const mus::Window* window) const { |
118 return window && | 119 return window && window->local_id() > ContainerToLocalId(Container::ROOT) && |
119 window->local_id() > ContainerToLocalId(mojom::Container::ROOT) && | 120 window->local_id() < ContainerToLocalId(Container::COUNT); |
120 window->local_id() < ContainerToLocalId(mojom::Container::COUNT); | |
121 } | 121 } |
122 | 122 |
123 mus::WindowManagerClient* RootWindowController::window_manager_client() { | 123 mus::WindowManagerClient* RootWindowController::window_manager_client() { |
124 return window_manager_->window_manager_client(); | 124 return window_manager_->window_manager_client(); |
125 } | 125 } |
126 | 126 |
127 void RootWindowController::OnAccelerator(uint32_t id, const ui::Event& event) { | 127 void RootWindowController::OnAccelerator(uint32_t id, const ui::Event& event) { |
128 switch (id) { | 128 switch (id) { |
129 case kWindowSwitchAccelerator: | 129 case kWindowSwitchAccelerator: |
130 window_manager_client()->ActivateNextWindow(); | 130 window_manager_client()->ActivateNextWindow(); |
131 break; | 131 break; |
132 default: | 132 default: |
133 app_->OnAccelerator(id, event); | 133 app_->OnAccelerator(id, event); |
134 break; | 134 break; |
135 } | 135 } |
136 } | 136 } |
137 | 137 |
138 ShelfLayoutManager* RootWindowController::GetShelfLayoutManager() { | 138 ShelfLayoutManager* RootWindowController::GetShelfLayoutManager() { |
139 return static_cast<ShelfLayoutManager*>( | 139 return static_cast<ShelfLayoutManager*>( |
140 layout_managers_[GetWindowForContainer( | 140 layout_managers_[GetWindowForContainer(Container::USER_PRIVATE_SHELF)] |
141 mojom::Container::USER_PRIVATE_SHELF)] | |
142 .get()); | 141 .get()); |
143 } | 142 } |
144 | 143 |
145 StatusLayoutManager* RootWindowController::GetStatusLayoutManager() { | 144 StatusLayoutManager* RootWindowController::GetStatusLayoutManager() { |
146 return static_cast<StatusLayoutManager*>( | 145 return static_cast<StatusLayoutManager*>( |
147 layout_managers_[GetWindowForContainer(mojom::Container::STATUS)].get()); | 146 layout_managers_[GetWindowForContainer(Container::STATUS)].get()); |
148 } | 147 } |
149 | 148 |
150 RootWindowController::RootWindowController(WindowManagerApplication* app) | 149 RootWindowController::RootWindowController(WindowManagerApplication* app) |
151 : app_(app), root_(nullptr), window_count_(0) { | 150 : app_(app), root_(nullptr), window_count_(0) { |
152 window_manager_.reset(new WindowManager); | 151 window_manager_.reset(new WindowManager); |
153 } | 152 } |
154 | 153 |
155 RootWindowController::~RootWindowController() {} | 154 RootWindowController::~RootWindowController() {} |
156 | 155 |
157 void RootWindowController::AddAccelerators() { | 156 void RootWindowController::AddAccelerators() { |
158 window_manager_client()->AddAccelerator( | 157 window_manager_client()->AddAccelerator( |
159 kWindowSwitchAccelerator, | 158 kWindowSwitchAccelerator, |
160 mus::CreateKeyMatcher(mus::mojom::KeyboardCode::TAB, | 159 mus::CreateKeyMatcher(mus::mojom::KeyboardCode::TAB, |
161 mus::mojom::kEventFlagControlDown), | 160 mus::mojom::kEventFlagControlDown), |
162 base::Bind(&AssertTrue)); | 161 base::Bind(&AssertTrue)); |
163 } | 162 } |
164 | 163 |
165 void RootWindowController::OnEmbed(mus::Window* root) { | 164 void RootWindowController::OnEmbed(mus::Window* root) { |
166 root_ = root; | 165 root_ = root; |
167 root_->set_local_id(ContainerToLocalId(mojom::Container::ROOT)); | 166 root_->set_local_id(ContainerToLocalId(Container::ROOT)); |
168 root_->AddObserver(this); | 167 root_->AddObserver(this); |
169 layout_managers_[root_].reset(new FillLayout(root_)); | 168 layout_managers_[root_].reset(new FillLayout(root_)); |
170 | 169 |
171 app_->OnRootWindowControllerGotRoot(this); | 170 app_->OnRootWindowControllerGotRoot(this); |
172 | 171 |
173 wm_root_window_controller_.reset( | 172 wm_root_window_controller_.reset( |
174 new WmRootWindowControllerMus(app_->globals(), this)); | 173 new WmRootWindowControllerMus(app_->globals(), this)); |
175 | 174 |
176 CreateContainers(); | 175 CreateContainers(); |
177 | 176 |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
222 | 221 |
223 ash::PanelLayoutManager::Get(WmWindowMus::Get(root_)) | 222 ash::PanelLayoutManager::Get(WmWindowMus::Get(root_)) |
224 ->SetShelf(wm_shelf_.get()); | 223 ->SetShelf(wm_shelf_.get()); |
225 | 224 |
226 // TODO: http://crbug.com/614182 Ash's ShelfLayoutManager implements | 225 // TODO: http://crbug.com/614182 Ash's ShelfLayoutManager implements |
227 // DockedWindowLayoutManagerObserver so that it can inset by the docked | 226 // DockedWindowLayoutManagerObserver so that it can inset by the docked |
228 // windows. | 227 // windows. |
229 // docked_layout_manager_->AddObserver(shelf_->shelf_layout_manager()); | 228 // docked_layout_manager_->AddObserver(shelf_->shelf_layout_manager()); |
230 } | 229 } |
231 | 230 |
232 void RootWindowController::CreateContainer( | 231 void RootWindowController::CreateContainer(Container container, |
233 mash::wm::mojom::Container container, | 232 Container parent_container) { |
234 mash::wm::mojom::Container parent_container) { | |
235 // Set the window's name to the container name (e.g. "Container::LOGIN"), | 233 // Set the window's name to the container name (e.g. "Container::LOGIN"), |
236 // which makes the window hierarchy easier to read. | 234 // which makes the window hierarchy easier to read. |
237 std::map<std::string, std::vector<uint8_t>> properties; | 235 std::map<std::string, std::vector<uint8_t>> properties; |
238 std::ostringstream container_name; | 236 std::ostringstream container_name; |
239 container_name << container; | 237 container_name << container; |
240 properties[mus::mojom::WindowManager::kName_Property] = | 238 properties[mus::mojom::WindowManager::kName_Property] = |
241 mojo::ConvertTo<std::vector<uint8_t>>(container_name.str()); | 239 mojo::ConvertTo<std::vector<uint8_t>>(container_name.str()); |
242 | 240 |
243 mus::Window* window = root_->window_tree()->NewWindow(&properties); | 241 mus::Window* window = root_->window_tree()->NewWindow(&properties); |
244 window->set_local_id(ContainerToLocalId(container)); | 242 window->set_local_id(ContainerToLocalId(container)); |
245 layout_managers_[window].reset(new FillLayout(window)); | 243 layout_managers_[window].reset(new FillLayout(window)); |
246 WmWindowMus::Get(window)->SetShellWindowId( | 244 WmWindowMus::Get(window)->SetShellWindowId( |
247 MashContainerToAshContainer(container)); | 245 MashContainerToAshContainer(container)); |
248 | 246 |
249 // User private windows are hidden by default until the window manager learns | 247 // User private windows are hidden by default until the window manager learns |
250 // the lock state, so their contents are never accidentally revealed. Tests, | 248 // the lock state, so their contents are never accidentally revealed. Tests, |
251 // however, usually assume the screen is unlocked. | 249 // however, usually assume the screen is unlocked. |
252 const bool is_test = base::CommandLine::ForCurrentProcess()->HasSwitch( | 250 const bool is_test = base::CommandLine::ForCurrentProcess()->HasSwitch( |
253 mus::switches::kUseTestConfig); | 251 mus::switches::kUseTestConfig); |
254 window->SetVisible(container != mojom::Container::USER_PRIVATE || is_test); | 252 window->SetVisible(container != Container::USER_PRIVATE || is_test); |
255 | 253 |
256 mus::Window* parent = | 254 mus::Window* parent = |
257 root_->GetChildByLocalId(ContainerToLocalId(parent_container)); | 255 root_->GetChildByLocalId(ContainerToLocalId(parent_container)); |
258 parent->AddChild(window); | 256 parent->AddChild(window); |
259 } | 257 } |
260 | 258 |
261 void RootWindowController::CreateContainers() { | 259 void RootWindowController::CreateContainers() { |
262 CreateContainer(mojom::Container::ALL_USER_BACKGROUND, | 260 CreateContainer(Container::ALL_USER_BACKGROUND, Container::ROOT); |
263 mojom::Container::ROOT); | 261 CreateContainer(Container::USER, Container::ROOT); |
264 CreateContainer(mojom::Container::USER, mojom::Container::ROOT); | 262 CreateContainer(Container::USER_BACKGROUND, Container::USER); |
265 CreateContainer(mojom::Container::USER_BACKGROUND, mojom::Container::USER); | 263 CreateContainer(Container::USER_PRIVATE, Container::USER); |
266 CreateContainer(mojom::Container::USER_PRIVATE, mojom::Container::USER); | 264 CreateContainer(Container::USER_PRIVATE_WINDOWS, Container::USER_PRIVATE); |
267 CreateContainer(mojom::Container::USER_PRIVATE_WINDOWS, | 265 CreateContainer(Container::USER_PRIVATE_ALWAYS_ON_TOP_WINDOWS, |
268 mojom::Container::USER_PRIVATE); | 266 Container::USER_PRIVATE); |
269 CreateContainer(mojom::Container::USER_PRIVATE_ALWAYS_ON_TOP_WINDOWS, | 267 CreateContainer(Container::USER_PRIVATE_DOCKED_WINDOWS, |
270 mojom::Container::USER_PRIVATE); | 268 Container::USER_PRIVATE); |
271 CreateContainer(mojom::Container::USER_PRIVATE_DOCKED_WINDOWS, | 269 CreateContainer(Container::USER_PRIVATE_PRESENTATION_WINDOWS, |
272 mojom::Container::USER_PRIVATE); | 270 Container::USER_PRIVATE); |
273 CreateContainer(mojom::Container::USER_PRIVATE_PRESENTATION_WINDOWS, | 271 CreateContainer(Container::USER_PRIVATE_SHELF, Container::USER_PRIVATE); |
274 mojom::Container::USER_PRIVATE); | 272 CreateContainer(Container::USER_PRIVATE_PANELS, Container::USER_PRIVATE); |
275 CreateContainer(mojom::Container::USER_PRIVATE_SHELF, | 273 CreateContainer(Container::USER_PRIVATE_APP_LIST, Container::USER_PRIVATE); |
276 mojom::Container::USER_PRIVATE); | 274 CreateContainer(Container::USER_PRIVATE_SYSTEM_MODAL, |
277 CreateContainer(mojom::Container::USER_PRIVATE_PANELS, | 275 Container::USER_PRIVATE); |
278 mojom::Container::USER_PRIVATE); | 276 CreateContainer(Container::LOGIN, Container::ROOT); |
279 CreateContainer(mojom::Container::USER_PRIVATE_APP_LIST, | 277 CreateContainer(Container::LOGIN_WINDOWS, Container::LOGIN); |
280 mojom::Container::USER_PRIVATE); | 278 CreateContainer(Container::LOGIN_APP, Container::LOGIN); |
281 CreateContainer(mojom::Container::USER_PRIVATE_SYSTEM_MODAL, | 279 CreateContainer(Container::LOGIN_SHELF, Container::LOGIN); |
282 mojom::Container::USER_PRIVATE); | 280 CreateContainer(Container::STATUS, Container::ROOT); |
283 CreateContainer(mojom::Container::LOGIN, mojom::Container::ROOT); | 281 CreateContainer(Container::BUBBLES, Container::ROOT); |
284 CreateContainer(mojom::Container::LOGIN_WINDOWS, mojom::Container::LOGIN); | 282 CreateContainer(Container::SYSTEM_MODAL_WINDOWS, Container::ROOT); |
285 CreateContainer(mojom::Container::LOGIN_APP, mojom::Container::LOGIN); | 283 CreateContainer(Container::KEYBOARD, Container::ROOT); |
286 CreateContainer(mojom::Container::LOGIN_SHELF, mojom::Container::LOGIN); | 284 CreateContainer(Container::MENUS, Container::ROOT); |
287 CreateContainer(mojom::Container::STATUS, mojom::Container::ROOT); | 285 CreateContainer(Container::DRAG_AND_TOOLTIPS, Container::ROOT); |
288 CreateContainer(mojom::Container::BUBBLES, mojom::Container::ROOT); | |
289 CreateContainer(mojom::Container::SYSTEM_MODAL_WINDOWS, | |
290 mojom::Container::ROOT); | |
291 CreateContainer(mojom::Container::KEYBOARD, mojom::Container::ROOT); | |
292 CreateContainer(mojom::Container::MENUS, mojom::Container::ROOT); | |
293 CreateContainer(mojom::Container::DRAG_AND_TOOLTIPS, mojom::Container::ROOT); | |
294 | 286 |
295 // Override the default layout managers for certain containers. | 287 // Override the default layout managers for certain containers. |
296 mus::Window* user_background = | 288 mus::Window* user_background = |
297 GetWindowForContainer(mojom::Container::USER_BACKGROUND); | 289 GetWindowForContainer(Container::USER_BACKGROUND); |
298 layout_managers_[user_background].reset( | 290 layout_managers_[user_background].reset( |
299 new BackgroundLayout(user_background)); | 291 new BackgroundLayout(user_background)); |
300 | 292 |
301 mus::Window* login_app = GetWindowForContainer(mojom::Container::LOGIN_APP); | 293 mus::Window* login_app = GetWindowForContainer(Container::LOGIN_APP); |
302 layout_managers_[login_app].reset(new ScreenlockLayout(login_app)); | 294 layout_managers_[login_app].reset(new ScreenlockLayout(login_app)); |
303 | 295 |
304 mus::Window* user_shelf = | 296 mus::Window* user_shelf = |
305 GetWindowForContainer(mojom::Container::USER_PRIVATE_SHELF); | 297 GetWindowForContainer(Container::USER_PRIVATE_SHELF); |
306 ShelfLayoutManager* shelf_layout_manager = | 298 ShelfLayoutManager* shelf_layout_manager = |
307 new ShelfLayoutManager(user_shelf, this); | 299 new ShelfLayoutManager(user_shelf, this); |
308 layout_managers_[user_shelf].reset(shelf_layout_manager); | 300 layout_managers_[user_shelf].reset(shelf_layout_manager); |
309 | 301 |
310 wm_shelf_.reset(new WmShelfMus(shelf_layout_manager)); | 302 wm_shelf_.reset(new WmShelfMus(shelf_layout_manager)); |
311 | 303 |
312 mus::Window* status = GetWindowForContainer(mojom::Container::STATUS); | 304 mus::Window* status = GetWindowForContainer(Container::STATUS); |
313 layout_managers_[status].reset(new StatusLayoutManager(status)); | 305 layout_managers_[status].reset(new StatusLayoutManager(status)); |
314 | 306 |
315 mus::Window* user_private_windows = | 307 mus::Window* user_private_windows = |
316 GetWindowForContainer(mojom::Container::USER_PRIVATE_WINDOWS); | 308 GetWindowForContainer(Container::USER_PRIVATE_WINDOWS); |
317 // WorkspaceLayoutManager is not a mash::wm::LayoutManager (it's an | 309 // WorkspaceLayoutManager is not a mash::wm::LayoutManager (it's an |
318 // ash::wm::LayoutManager), so it can't be in |layout_managers_|. | 310 // ash::wm::LayoutManager), so it can't be in |layout_managers_|. |
319 layout_managers_.erase(user_private_windows); | 311 layout_managers_.erase(user_private_windows); |
320 std::unique_ptr<WorkspaceLayoutManagerDelegateImpl> | 312 std::unique_ptr<WorkspaceLayoutManagerDelegateImpl> |
321 workspace_layout_manager_delegate(new WorkspaceLayoutManagerDelegateImpl( | 313 workspace_layout_manager_delegate(new WorkspaceLayoutManagerDelegateImpl( |
322 wm_root_window_controller_.get())); | 314 wm_root_window_controller_.get())); |
323 WmWindowMus* user_private_windows_wm = WmWindowMus::Get(user_private_windows); | 315 WmWindowMus* user_private_windows_wm = WmWindowMus::Get(user_private_windows); |
324 user_private_windows_wm->SetSnapsChildrenToPhysicalPixelBoundary(); | 316 user_private_windows_wm->SetSnapsChildrenToPhysicalPixelBoundary(); |
325 user_private_windows_wm->SetChildrenUseExtendedHitRegion(); | 317 user_private_windows_wm->SetChildrenUseExtendedHitRegion(); |
326 user_private_windows_wm->SetLayoutManager( | 318 user_private_windows_wm->SetLayoutManager( |
327 base::WrapUnique(new ash::WorkspaceLayoutManager( | 319 base::WrapUnique(new ash::WorkspaceLayoutManager( |
328 user_private_windows_wm, | 320 user_private_windows_wm, |
329 std::move(workspace_layout_manager_delegate)))); | 321 std::move(workspace_layout_manager_delegate)))); |
330 | 322 |
331 mus::Window* user_private_docked_windows = | 323 mus::Window* user_private_docked_windows = |
332 GetWindowForContainer(mojom::Container::USER_PRIVATE_DOCKED_WINDOWS); | 324 GetWindowForContainer(Container::USER_PRIVATE_DOCKED_WINDOWS); |
333 WmWindowMus* user_private_docked_windows_wm = | 325 WmWindowMus* user_private_docked_windows_wm = |
334 WmWindowMus::Get(user_private_docked_windows); | 326 WmWindowMus::Get(user_private_docked_windows); |
335 user_private_docked_windows_wm->SetSnapsChildrenToPhysicalPixelBoundary(); | 327 user_private_docked_windows_wm->SetSnapsChildrenToPhysicalPixelBoundary(); |
336 layout_managers_.erase(user_private_docked_windows); | 328 layout_managers_.erase(user_private_docked_windows); |
337 user_private_docked_windows_wm->SetChildrenUseExtendedHitRegion(); | 329 user_private_docked_windows_wm->SetChildrenUseExtendedHitRegion(); |
338 user_private_docked_windows_wm->SetLayoutManager(base::WrapUnique( | 330 user_private_docked_windows_wm->SetLayoutManager(base::WrapUnique( |
339 new ash::DockedWindowLayoutManager(user_private_docked_windows_wm))); | 331 new ash::DockedWindowLayoutManager(user_private_docked_windows_wm))); |
340 | 332 |
341 mus::Window* user_private_panels = | 333 mus::Window* user_private_panels = |
342 GetWindowForContainer(mojom::Container::USER_PRIVATE_PANELS); | 334 GetWindowForContainer(Container::USER_PRIVATE_PANELS); |
343 WmWindowMus* user_private_panels_wm = WmWindowMus::Get(user_private_panels); | 335 WmWindowMus* user_private_panels_wm = WmWindowMus::Get(user_private_panels); |
344 user_private_panels_wm->SetSnapsChildrenToPhysicalPixelBoundary(); | 336 user_private_panels_wm->SetSnapsChildrenToPhysicalPixelBoundary(); |
345 layout_managers_.erase(user_private_panels); | 337 layout_managers_.erase(user_private_panels); |
346 user_private_panels_wm->SetChildrenUseExtendedHitRegion(); | 338 user_private_panels_wm->SetChildrenUseExtendedHitRegion(); |
347 user_private_panels_wm->SetLayoutManager( | 339 user_private_panels_wm->SetLayoutManager( |
348 base::WrapUnique(new ash::PanelLayoutManager(user_private_panels_wm))); | 340 base::WrapUnique(new ash::PanelLayoutManager(user_private_panels_wm))); |
349 | 341 |
350 mus::Window* user_private_always_on_top = GetWindowForContainer( | 342 mus::Window* user_private_always_on_top = |
351 mojom::Container::USER_PRIVATE_ALWAYS_ON_TOP_WINDOWS); | 343 GetWindowForContainer(Container::USER_PRIVATE_ALWAYS_ON_TOP_WINDOWS); |
352 WmWindowMus* user_private_always_on_top_wm = | 344 WmWindowMus* user_private_always_on_top_wm = |
353 WmWindowMus::Get(user_private_always_on_top); | 345 WmWindowMus::Get(user_private_always_on_top); |
354 user_private_always_on_top_wm->SetChildrenUseExtendedHitRegion(); | 346 user_private_always_on_top_wm->SetChildrenUseExtendedHitRegion(); |
355 user_private_always_on_top_wm->SetSnapsChildrenToPhysicalPixelBoundary(); | 347 user_private_always_on_top_wm->SetSnapsChildrenToPhysicalPixelBoundary(); |
356 } | 348 } |
357 | 349 |
358 } // namespace wm | 350 } // namespace wm |
359 } // namespace mash | 351 } // namespace mash |
OLD | NEW |