Chromium Code Reviews| 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; | |
|
msw
2016/06/01 01:51:42
nit: remove using or use it in more cases below?
sky
2016/06/01 03:30:26
Made it used everywhere.
| |
| 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(ash::mojom::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 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 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( |
| 113 mojom::Container container) { | 115 ash::mojom::Container container) { |
| 114 return root_->GetChildByLocalId(ContainerToLocalId(container)); | 116 return root_->GetChildByLocalId(ContainerToLocalId(container)); |
| 115 } | 117 } |
| 116 | 118 |
| 117 bool RootWindowController::WindowIsContainer(const mus::Window* window) const { | 119 bool RootWindowController::WindowIsContainer(const mus::Window* window) const { |
| 118 return window && | 120 return window && |
| 119 window->local_id() > ContainerToLocalId(mojom::Container::ROOT) && | 121 window->local_id() > ContainerToLocalId(ash::mojom::Container::ROOT) && |
| 120 window->local_id() < ContainerToLocalId(mojom::Container::COUNT); | 122 window->local_id() < ContainerToLocalId(ash::mojom::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); |
| 134 break; | 136 break; |
| 135 } | 137 } |
| 136 } | 138 } |
| 137 | 139 |
| 138 ShelfLayoutManager* RootWindowController::GetShelfLayoutManager() { | 140 ShelfLayoutManager* RootWindowController::GetShelfLayoutManager() { |
| 139 return static_cast<ShelfLayoutManager*>( | 141 return static_cast<ShelfLayoutManager*>( |
| 140 layout_managers_[GetWindowForContainer( | 142 layout_managers_[GetWindowForContainer( |
| 141 mojom::Container::USER_PRIVATE_SHELF)] | 143 ash::mojom::Container::USER_PRIVATE_SHELF)] |
| 142 .get()); | 144 .get()); |
| 143 } | 145 } |
| 144 | 146 |
| 145 StatusLayoutManager* RootWindowController::GetStatusLayoutManager() { | 147 StatusLayoutManager* RootWindowController::GetStatusLayoutManager() { |
| 146 return static_cast<StatusLayoutManager*>( | 148 return static_cast<StatusLayoutManager*>( |
| 147 layout_managers_[GetWindowForContainer(mojom::Container::STATUS)].get()); | 149 layout_managers_[GetWindowForContainer(ash::mojom::Container::STATUS)] |
| 150 .get()); | |
| 148 } | 151 } |
| 149 | 152 |
| 150 RootWindowController::RootWindowController(WindowManagerApplication* app) | 153 RootWindowController::RootWindowController(WindowManagerApplication* app) |
| 151 : app_(app), root_(nullptr), window_count_(0) { | 154 : app_(app), root_(nullptr), window_count_(0) { |
| 152 window_manager_.reset(new WindowManager); | 155 window_manager_.reset(new WindowManager); |
| 153 } | 156 } |
| 154 | 157 |
| 155 RootWindowController::~RootWindowController() {} | 158 RootWindowController::~RootWindowController() {} |
| 156 | 159 |
| 157 void RootWindowController::AddAccelerators() { | 160 void RootWindowController::AddAccelerators() { |
| 158 window_manager_client()->AddAccelerator( | 161 window_manager_client()->AddAccelerator( |
| 159 kWindowSwitchAccelerator, | 162 kWindowSwitchAccelerator, |
| 160 mus::CreateKeyMatcher(mus::mojom::KeyboardCode::TAB, | 163 mus::CreateKeyMatcher(mus::mojom::KeyboardCode::TAB, |
| 161 mus::mojom::kEventFlagControlDown), | 164 mus::mojom::kEventFlagControlDown), |
| 162 base::Bind(&AssertTrue)); | 165 base::Bind(&AssertTrue)); |
| 163 } | 166 } |
| 164 | 167 |
| 165 void RootWindowController::OnEmbed(mus::Window* root) { | 168 void RootWindowController::OnEmbed(mus::Window* root) { |
| 166 root_ = root; | 169 root_ = root; |
| 167 root_->set_local_id(ContainerToLocalId(mojom::Container::ROOT)); | 170 root_->set_local_id(ContainerToLocalId(ash::mojom::Container::ROOT)); |
| 168 root_->AddObserver(this); | 171 root_->AddObserver(this); |
| 169 layout_managers_[root_].reset(new FillLayout(root_)); | 172 layout_managers_[root_].reset(new FillLayout(root_)); |
| 170 | 173 |
| 171 app_->OnRootWindowControllerGotRoot(this); | 174 app_->OnRootWindowControllerGotRoot(this); |
| 172 | 175 |
| 173 wm_root_window_controller_.reset( | 176 wm_root_window_controller_.reset( |
| 174 new WmRootWindowControllerMus(app_->globals(), this)); | 177 new WmRootWindowControllerMus(app_->globals(), this)); |
| 175 | 178 |
| 176 CreateContainers(); | 179 CreateContainers(); |
| 177 | 180 |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 223 ash::PanelLayoutManager::Get(WmWindowMus::Get(root_)) | 226 ash::PanelLayoutManager::Get(WmWindowMus::Get(root_)) |
| 224 ->SetShelf(wm_shelf_.get()); | 227 ->SetShelf(wm_shelf_.get()); |
| 225 | 228 |
| 226 // TODO: http://crbug.com/614182 Ash's ShelfLayoutManager implements | 229 // TODO: http://crbug.com/614182 Ash's ShelfLayoutManager implements |
| 227 // DockedWindowLayoutManagerObserver so that it can inset by the docked | 230 // DockedWindowLayoutManagerObserver so that it can inset by the docked |
| 228 // windows. | 231 // windows. |
| 229 // docked_layout_manager_->AddObserver(shelf_->shelf_layout_manager()); | 232 // docked_layout_manager_->AddObserver(shelf_->shelf_layout_manager()); |
| 230 } | 233 } |
| 231 | 234 |
| 232 void RootWindowController::CreateContainer( | 235 void RootWindowController::CreateContainer( |
| 233 mash::wm::mojom::Container container, | 236 ash::mojom::Container container, |
| 234 mash::wm::mojom::Container parent_container) { | 237 ash::mojom::Container parent_container) { |
| 235 // Set the window's name to the container name (e.g. "Container::LOGIN"), | 238 // Set the window's name to the container name (e.g. "Container::LOGIN"), |
| 236 // which makes the window hierarchy easier to read. | 239 // which makes the window hierarchy easier to read. |
| 237 std::map<std::string, std::vector<uint8_t>> properties; | 240 std::map<std::string, std::vector<uint8_t>> properties; |
| 238 std::ostringstream container_name; | 241 std::ostringstream container_name; |
| 239 container_name << container; | 242 container_name << container; |
| 240 properties[mus::mojom::WindowManager::kName_Property] = | 243 properties[mus::mojom::WindowManager::kName_Property] = |
| 241 mojo::ConvertTo<std::vector<uint8_t>>(container_name.str()); | 244 mojo::ConvertTo<std::vector<uint8_t>>(container_name.str()); |
| 242 | 245 |
| 243 mus::Window* window = root_->window_tree()->NewWindow(&properties); | 246 mus::Window* window = root_->window_tree()->NewWindow(&properties); |
| 244 window->set_local_id(ContainerToLocalId(container)); | 247 window->set_local_id(ContainerToLocalId(container)); |
| 245 layout_managers_[window].reset(new FillLayout(window)); | 248 layout_managers_[window].reset(new FillLayout(window)); |
| 246 WmWindowMus::Get(window)->SetShellWindowId( | 249 WmWindowMus::Get(window)->SetShellWindowId( |
| 247 MashContainerToAshContainer(container)); | 250 MashContainerToAshContainer(container)); |
| 248 | 251 |
| 249 // User private windows are hidden by default until the window manager learns | 252 // User private windows are hidden by default until the window manager learns |
| 250 // the lock state, so their contents are never accidentally revealed. Tests, | 253 // the lock state, so their contents are never accidentally revealed. Tests, |
| 251 // however, usually assume the screen is unlocked. | 254 // however, usually assume the screen is unlocked. |
| 252 const bool is_test = base::CommandLine::ForCurrentProcess()->HasSwitch( | 255 const bool is_test = base::CommandLine::ForCurrentProcess()->HasSwitch( |
| 253 mus::switches::kUseTestConfig); | 256 mus::switches::kUseTestConfig); |
| 254 window->SetVisible(container != mojom::Container::USER_PRIVATE || is_test); | 257 window->SetVisible(container != ash::mojom::Container::USER_PRIVATE || |
| 258 is_test); | |
| 255 | 259 |
| 256 mus::Window* parent = | 260 mus::Window* parent = |
| 257 root_->GetChildByLocalId(ContainerToLocalId(parent_container)); | 261 root_->GetChildByLocalId(ContainerToLocalId(parent_container)); |
| 258 parent->AddChild(window); | 262 parent->AddChild(window); |
| 259 } | 263 } |
| 260 | 264 |
| 261 void RootWindowController::CreateContainers() { | 265 void RootWindowController::CreateContainers() { |
| 262 CreateContainer(mojom::Container::ALL_USER_BACKGROUND, | 266 CreateContainer(Container::ALL_USER_BACKGROUND, Container::ROOT); |
| 263 mojom::Container::ROOT); | 267 CreateContainer(Container::USER, Container::ROOT); |
| 264 CreateContainer(mojom::Container::USER, mojom::Container::ROOT); | 268 CreateContainer(Container::USER_BACKGROUND, Container::USER); |
| 265 CreateContainer(mojom::Container::USER_BACKGROUND, mojom::Container::USER); | 269 CreateContainer(Container::USER_PRIVATE, Container::USER); |
| 266 CreateContainer(mojom::Container::USER_PRIVATE, mojom::Container::USER); | 270 CreateContainer(Container::USER_PRIVATE_WINDOWS, Container::USER_PRIVATE); |
| 267 CreateContainer(mojom::Container::USER_PRIVATE_WINDOWS, | 271 CreateContainer(Container::USER_PRIVATE_ALWAYS_ON_TOP_WINDOWS, |
| 268 mojom::Container::USER_PRIVATE); | 272 Container::USER_PRIVATE); |
| 269 CreateContainer(mojom::Container::USER_PRIVATE_ALWAYS_ON_TOP_WINDOWS, | 273 CreateContainer(Container::USER_PRIVATE_DOCKED_WINDOWS, |
| 270 mojom::Container::USER_PRIVATE); | 274 Container::USER_PRIVATE); |
| 271 CreateContainer(mojom::Container::USER_PRIVATE_DOCKED_WINDOWS, | 275 CreateContainer(Container::USER_PRIVATE_PRESENTATION_WINDOWS, |
| 272 mojom::Container::USER_PRIVATE); | 276 Container::USER_PRIVATE); |
| 273 CreateContainer(mojom::Container::USER_PRIVATE_PRESENTATION_WINDOWS, | 277 CreateContainer(Container::USER_PRIVATE_SHELF, Container::USER_PRIVATE); |
| 274 mojom::Container::USER_PRIVATE); | 278 CreateContainer(Container::USER_PRIVATE_PANELS, Container::USER_PRIVATE); |
| 275 CreateContainer(mojom::Container::USER_PRIVATE_SHELF, | 279 CreateContainer(Container::USER_PRIVATE_APP_LIST, Container::USER_PRIVATE); |
| 276 mojom::Container::USER_PRIVATE); | 280 CreateContainer(Container::USER_PRIVATE_SYSTEM_MODAL, |
| 277 CreateContainer(mojom::Container::USER_PRIVATE_PANELS, | 281 Container::USER_PRIVATE); |
| 278 mojom::Container::USER_PRIVATE); | 282 CreateContainer(Container::LOGIN, Container::ROOT); |
| 279 CreateContainer(mojom::Container::USER_PRIVATE_APP_LIST, | 283 CreateContainer(Container::LOGIN_WINDOWS, Container::LOGIN); |
| 280 mojom::Container::USER_PRIVATE); | 284 CreateContainer(Container::LOGIN_APP, Container::LOGIN); |
| 281 CreateContainer(mojom::Container::USER_PRIVATE_SYSTEM_MODAL, | 285 CreateContainer(Container::LOGIN_SHELF, Container::LOGIN); |
| 282 mojom::Container::USER_PRIVATE); | 286 CreateContainer(Container::STATUS, Container::ROOT); |
| 283 CreateContainer(mojom::Container::LOGIN, mojom::Container::ROOT); | 287 CreateContainer(Container::BUBBLES, Container::ROOT); |
| 284 CreateContainer(mojom::Container::LOGIN_WINDOWS, mojom::Container::LOGIN); | 288 CreateContainer(Container::SYSTEM_MODAL_WINDOWS, Container::ROOT); |
| 285 CreateContainer(mojom::Container::LOGIN_APP, mojom::Container::LOGIN); | 289 CreateContainer(Container::KEYBOARD, Container::ROOT); |
| 286 CreateContainer(mojom::Container::LOGIN_SHELF, mojom::Container::LOGIN); | 290 CreateContainer(Container::MENUS, Container::ROOT); |
| 287 CreateContainer(mojom::Container::STATUS, mojom::Container::ROOT); | 291 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 | 292 |
| 295 // Override the default layout managers for certain containers. | 293 // Override the default layout managers for certain containers. |
| 296 mus::Window* user_background = | 294 mus::Window* user_background = |
| 297 GetWindowForContainer(mojom::Container::USER_BACKGROUND); | 295 GetWindowForContainer(Container::USER_BACKGROUND); |
| 298 layout_managers_[user_background].reset( | 296 layout_managers_[user_background].reset( |
| 299 new BackgroundLayout(user_background)); | 297 new BackgroundLayout(user_background)); |
| 300 | 298 |
| 301 mus::Window* login_app = GetWindowForContainer(mojom::Container::LOGIN_APP); | 299 mus::Window* login_app = GetWindowForContainer(Container::LOGIN_APP); |
| 302 layout_managers_[login_app].reset(new ScreenlockLayout(login_app)); | 300 layout_managers_[login_app].reset(new ScreenlockLayout(login_app)); |
| 303 | 301 |
| 304 mus::Window* user_shelf = | 302 mus::Window* user_shelf = |
| 305 GetWindowForContainer(mojom::Container::USER_PRIVATE_SHELF); | 303 GetWindowForContainer(Container::USER_PRIVATE_SHELF); |
| 306 ShelfLayoutManager* shelf_layout_manager = | 304 ShelfLayoutManager* shelf_layout_manager = |
| 307 new ShelfLayoutManager(user_shelf, this); | 305 new ShelfLayoutManager(user_shelf, this); |
| 308 layout_managers_[user_shelf].reset(shelf_layout_manager); | 306 layout_managers_[user_shelf].reset(shelf_layout_manager); |
| 309 | 307 |
| 310 wm_shelf_.reset(new WmShelfMus(shelf_layout_manager)); | 308 wm_shelf_.reset(new WmShelfMus(shelf_layout_manager)); |
| 311 | 309 |
| 312 mus::Window* status = GetWindowForContainer(mojom::Container::STATUS); | 310 mus::Window* status = GetWindowForContainer(Container::STATUS); |
| 313 layout_managers_[status].reset(new StatusLayoutManager(status)); | 311 layout_managers_[status].reset(new StatusLayoutManager(status)); |
| 314 | 312 |
| 315 mus::Window* user_private_windows = | 313 mus::Window* user_private_windows = |
| 316 GetWindowForContainer(mojom::Container::USER_PRIVATE_WINDOWS); | 314 GetWindowForContainer(Container::USER_PRIVATE_WINDOWS); |
| 317 // WorkspaceLayoutManager is not a mash::wm::LayoutManager (it's an | 315 // WorkspaceLayoutManager is not a mash::wm::LayoutManager (it's an |
| 318 // ash::wm::LayoutManager), so it can't be in |layout_managers_|. | 316 // ash::wm::LayoutManager), so it can't be in |layout_managers_|. |
| 319 layout_managers_.erase(user_private_windows); | 317 layout_managers_.erase(user_private_windows); |
| 320 std::unique_ptr<WorkspaceLayoutManagerDelegateImpl> | 318 std::unique_ptr<WorkspaceLayoutManagerDelegateImpl> |
| 321 workspace_layout_manager_delegate(new WorkspaceLayoutManagerDelegateImpl( | 319 workspace_layout_manager_delegate(new WorkspaceLayoutManagerDelegateImpl( |
| 322 wm_root_window_controller_.get())); | 320 wm_root_window_controller_.get())); |
| 323 WmWindowMus* user_private_windows_wm = WmWindowMus::Get(user_private_windows); | 321 WmWindowMus* user_private_windows_wm = WmWindowMus::Get(user_private_windows); |
| 324 user_private_windows_wm->SetSnapsChildrenToPhysicalPixelBoundary(); | 322 user_private_windows_wm->SetSnapsChildrenToPhysicalPixelBoundary(); |
| 325 user_private_windows_wm->SetChildrenUseExtendedHitRegion(); | 323 user_private_windows_wm->SetChildrenUseExtendedHitRegion(); |
| 326 user_private_windows_wm->SetLayoutManager( | 324 user_private_windows_wm->SetLayoutManager( |
| 327 base::WrapUnique(new ash::WorkspaceLayoutManager( | 325 base::WrapUnique(new ash::WorkspaceLayoutManager( |
| 328 user_private_windows_wm, | 326 user_private_windows_wm, |
| 329 std::move(workspace_layout_manager_delegate)))); | 327 std::move(workspace_layout_manager_delegate)))); |
| 330 | 328 |
| 331 mus::Window* user_private_docked_windows = | 329 mus::Window* user_private_docked_windows = |
| 332 GetWindowForContainer(mojom::Container::USER_PRIVATE_DOCKED_WINDOWS); | 330 GetWindowForContainer(Container::USER_PRIVATE_DOCKED_WINDOWS); |
| 333 WmWindowMus* user_private_docked_windows_wm = | 331 WmWindowMus* user_private_docked_windows_wm = |
| 334 WmWindowMus::Get(user_private_docked_windows); | 332 WmWindowMus::Get(user_private_docked_windows); |
| 335 user_private_docked_windows_wm->SetSnapsChildrenToPhysicalPixelBoundary(); | 333 user_private_docked_windows_wm->SetSnapsChildrenToPhysicalPixelBoundary(); |
| 336 layout_managers_.erase(user_private_docked_windows); | 334 layout_managers_.erase(user_private_docked_windows); |
| 337 user_private_docked_windows_wm->SetChildrenUseExtendedHitRegion(); | 335 user_private_docked_windows_wm->SetChildrenUseExtendedHitRegion(); |
| 338 user_private_docked_windows_wm->SetLayoutManager(base::WrapUnique( | 336 user_private_docked_windows_wm->SetLayoutManager(base::WrapUnique( |
| 339 new ash::DockedWindowLayoutManager(user_private_docked_windows_wm))); | 337 new ash::DockedWindowLayoutManager(user_private_docked_windows_wm))); |
| 340 | 338 |
| 341 mus::Window* user_private_panels = | 339 mus::Window* user_private_panels = |
| 342 GetWindowForContainer(mojom::Container::USER_PRIVATE_PANELS); | 340 GetWindowForContainer(Container::USER_PRIVATE_PANELS); |
| 343 WmWindowMus* user_private_panels_wm = WmWindowMus::Get(user_private_panels); | 341 WmWindowMus* user_private_panels_wm = WmWindowMus::Get(user_private_panels); |
| 344 user_private_panels_wm->SetSnapsChildrenToPhysicalPixelBoundary(); | 342 user_private_panels_wm->SetSnapsChildrenToPhysicalPixelBoundary(); |
| 345 layout_managers_.erase(user_private_panels); | 343 layout_managers_.erase(user_private_panels); |
| 346 user_private_panels_wm->SetChildrenUseExtendedHitRegion(); | 344 user_private_panels_wm->SetChildrenUseExtendedHitRegion(); |
| 347 user_private_panels_wm->SetLayoutManager( | 345 user_private_panels_wm->SetLayoutManager( |
| 348 base::WrapUnique(new ash::PanelLayoutManager(user_private_panels_wm))); | 346 base::WrapUnique(new ash::PanelLayoutManager(user_private_panels_wm))); |
| 349 | 347 |
| 350 mus::Window* user_private_always_on_top = GetWindowForContainer( | 348 mus::Window* user_private_always_on_top = |
| 351 mojom::Container::USER_PRIVATE_ALWAYS_ON_TOP_WINDOWS); | 349 GetWindowForContainer(Container::USER_PRIVATE_ALWAYS_ON_TOP_WINDOWS); |
| 352 WmWindowMus* user_private_always_on_top_wm = | 350 WmWindowMus* user_private_always_on_top_wm = |
| 353 WmWindowMus::Get(user_private_always_on_top); | 351 WmWindowMus::Get(user_private_always_on_top); |
| 354 user_private_always_on_top_wm->SetChildrenUseExtendedHitRegion(); | 352 user_private_always_on_top_wm->SetChildrenUseExtendedHitRegion(); |
| 355 user_private_always_on_top_wm->SetSnapsChildrenToPhysicalPixelBoundary(); | 353 user_private_always_on_top_wm->SetSnapsChildrenToPhysicalPixelBoundary(); |
| 356 } | 354 } |
| 357 | 355 |
| 358 } // namespace wm | 356 } // namespace wm |
| 359 } // namespace mash | 357 } // namespace mash |
| OLD | NEW |