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

Unified Diff: ash/mus/window_manager.cc

Issue 2620913003: Removes WmRootWindowController subclasses (Closed)
Patch Set: spelling Created 3 years, 11 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ash/mus/window_manager.h ('k') | ash/root_window_controller.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ash/mus/window_manager.cc
diff --git a/ash/mus/window_manager.cc b/ash/mus/window_manager.cc
index 5946488013fd18246e613b9e236117fec04072cf..ac91f77077a41f43abacf18cfee5e86df7ae145a 100644
--- a/ash/mus/window_manager.cc
+++ b/ash/mus/window_manager.cc
@@ -10,11 +10,11 @@
#include "ash/common/wm/container_finder.h"
#include "ash/common/wm/window_state.h"
+#include "ash/common/wm_root_window_controller.h"
#include "ash/display/screen_position_controller.h"
#include "ash/mus/accelerators/accelerator_handler.h"
#include "ash/mus/accelerators/accelerator_ids.h"
#include "ash/mus/bridge/wm_lookup_mus.h"
-#include "ash/mus/bridge/wm_root_window_controller_mus.h"
#include "ash/mus/bridge/wm_shell_mus.h"
#include "ash/mus/bridge/wm_window_mus.h"
#include "ash/mus/move_event_handler.h"
@@ -27,6 +27,7 @@
#include "ash/mus/window_manager_observer.h"
#include "ash/mus/window_properties.h"
#include "ash/public/cpp/shell_window_ids.h"
+#include "ash/shell.h"
#include "ash/wm/ash_focus_rules.h"
#include "ash/wm/event_client_impl.h"
#include "ash/wm/window_properties.h"
@@ -95,6 +96,7 @@ WindowManager::WindowManager(service_manager::Connector* connector)
WindowManager::~WindowManager() {
Shutdown();
aura::Env::GetInstance()->RemoveObserver(this);
+ ash::Shell::set_window_tree_client(nullptr);
}
void WindowManager::Init(
@@ -104,6 +106,9 @@ void WindowManager::Init(
DCHECK(!window_tree_client_);
window_tree_client_ = std::move(window_tree_client);
+ DCHECK_EQ(nullptr, ash::Shell::window_tree_client());
+ ash::Shell::set_window_tree_client(window_tree_client_.get());
+
aura::Env::GetInstance()->AddObserver(this);
// |connector_| will be null in some tests.
@@ -204,10 +209,10 @@ display::mojom::DisplayController* WindowManager::GetDisplayController() {
RootWindowController* WindowManager::CreateRootWindowController(
std::unique_ptr<aura::WindowTreeHostMus> window_tree_host,
- const display::Display& display) {
- // TODO(sky): this is temporary, should use RootWindowController directly.
- aura::client::SetCaptureClient(window_tree_host->window(),
- wm_state_->capture_controller());
+ const display::Display& display,
+ ash::RootWindowController::RootWindowType root_window_type) {
+ // TODO(sky): all of these calls to SetFooClient() are done in
+ // Shell::InitRootWindow(). When Shell is used these can be removed.
aura::client::SetFocusClient(window_tree_host->window(),
focus_controller_.get());
aura::client::SetActivationClient(window_tree_host->window(),
@@ -217,13 +222,16 @@ RootWindowController* WindowManager::CreateRootWindowController(
screen_position_controller_.get());
std::unique_ptr<RootWindowController> root_window_controller_ptr(
- new RootWindowController(this, std::move(window_tree_host), display));
+ new RootWindowController(this, std::move(window_tree_host), display,
+ root_window_type));
RootWindowController* root_window_controller =
root_window_controller_ptr.get();
root_window_controllers_.insert(std::move(root_window_controller_ptr));
// TODO: this should be called when logged in. See http://crbug.com/654606.
- root_window_controller->wm_root_window_controller()->CreateShelf();
+ root_window_controller->ash_root_window_controller()
+ ->wm_root_window_controller()
+ ->CreateShelf();
for (auto& observer : observers_)
observer.OnRootWindowControllerAdded(root_window_controller);
@@ -238,8 +246,8 @@ void WindowManager::DestroyRootWindowController(
RootWindowController* root_window_controller) {
if (root_window_controllers_.size() > 1) {
DCHECK_NE(root_window_controller, GetPrimaryRootWindowController());
- root_window_controller->wm_root_window_controller()->MoveWindowsTo(
- WmWindowMus::Get(GetPrimaryRootWindowController()->root()));
+ root_window_controller->ash_root_window_controller()->MoveWindowsTo(
+ GetPrimaryRootWindowController()->root());
}
root_window_controller->Shutdown();
@@ -303,9 +311,10 @@ void WindowManager::Shutdown() {
}
RootWindowController* WindowManager::GetPrimaryRootWindowController() {
- return static_cast<WmRootWindowControllerMus*>(
- WmShell::Get()->GetPrimaryRootWindowController())
- ->root_window_controller();
+ return RootWindowController::ForWindow(
+ static_cast<WmWindowMus*>(
+ WmShell::Get()->GetPrimaryRootWindowController()->GetWindow())
+ ->aura_window());
}
RootWindowController*
@@ -318,11 +327,9 @@ WindowManager::GetRootWindowControllerForNewTopLevelWindow(
return root_window_controller_ptr.get();
}
- return static_cast<WmRootWindowControllerMus*>(
- WmShellMus::Get()
- ->GetRootWindowForNewWindows()
- ->GetRootWindowController())
- ->root_window_controller();
+ return RootWindowController::ForWindow(
+ static_cast<WmWindowMus*>(WmShellMus::Get()->GetRootWindowForNewWindows())
+ ->aura_window());
}
void WindowManager::OnEmbed(
@@ -427,7 +434,12 @@ void WindowManager::OnWmWillCreateDisplay(const display::Display& display) {
void WindowManager::OnWmNewDisplay(
std::unique_ptr<aura::WindowTreeHostMus> window_tree_host,
const display::Display& display) {
- CreateRootWindowController(std::move(window_tree_host), display);
+ ash::RootWindowController::RootWindowType root_window_type =
+ screen_->display_list().displays().size() == 1
+ ? ash::RootWindowController::RootWindowType::PRIMARY
+ : ash::RootWindowController::RootWindowType::SECONDARY;
+ CreateRootWindowController(std::move(window_tree_host), display,
+ root_window_type);
}
void WindowManager::OnWmDisplayRemoved(
« no previous file with comments | « ash/mus/window_manager.h ('k') | ash/root_window_controller.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698