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

Unified Diff: ash/mus/window_manager.cc

Issue 2840043003: chromeos: Makes mushrome use simplified display management (Closed)
Patch Set: merge Created 3 years, 8 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/mus/window_manager_application.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 0b7c4ae2559f3628ffeca62d90d2bc94bec47ec0..b7cf573e32728bc6da710e6c9b47acadef7e83c1 100644
--- a/ash/mus/window_manager.cc
+++ b/ash/mus/window_manager.cc
@@ -75,9 +75,11 @@ struct WindowManager::DragState {
// TODO: need to register OSExchangeDataProviderMus. http://crbug.com/665077.
WindowManager::WindowManager(service_manager::Connector* connector,
- Config config)
+ Config config,
+ bool show_primary_host_on_connect)
: connector_(connector),
config_(config),
+ show_primary_host_on_connect_(show_primary_host_on_connect),
wm_state_(base::MakeUnique<::wm::WMState>()),
property_converter_(base::MakeUnique<aura::PropertyConverter>()) {
property_converter_->RegisterProperty(
@@ -122,12 +124,14 @@ void WindowManager::Init(
DCHECK_EQ(nullptr, ash::Shell::window_tree_client());
ash::Shell::set_window_tree_client(window_tree_client_.get());
- // |connector_| will be null in some tests.
- if (connector_)
- connector_->BindInterface(ui::mojom::kServiceName, &display_controller_);
-
- screen_ = base::MakeUnique<ScreenMus>(display_controller_.get());
- display::Screen::SetScreenInstance(screen_.get());
+ // TODO(sky): remove and use MUS code.
+ if (config_ == Config::MASH) {
+ // |connector_| is null in some tests.
+ if (connector_)
+ connector_->BindInterface(ui::mojom::kServiceName, &display_controller_);
+ screen_ = base::MakeUnique<ScreenMus>(display_controller_.get());
+ display::Screen::SetScreenInstance(screen_.get());
+ }
pointer_watcher_event_router_ =
base::MakeUnique<views::PointerWatcherEventRouter>(
@@ -229,10 +233,10 @@ void WindowManager::CreateShell(
DCHECK(!created_shell_);
created_shell_ = true;
ShellInitParams init_params;
- ShellPortMash* shell_port =
- new ShellPortMash(WmWindow::Get(window_tree_host->window()), this,
- pointer_watcher_event_router_.get(),
- create_session_state_delegate_stub_for_test_);
+ ShellPortMash* shell_port = new ShellPortMash(
+ window_tree_host ? WmWindow::Get(window_tree_host->window()) : nullptr,
+ this, pointer_watcher_event_router_.get(),
+ create_session_state_delegate_stub_for_test_);
// Shell::CreateInstance() takes ownership of ShellDelegate.
init_params.delegate = shell_delegate_ ? shell_delegate_.release()
: new ShellDelegateMus(connector_);
@@ -336,7 +340,14 @@ void WindowManager::SetWindowManagerClient(aura::WindowManagerClient* client) {
ash::Shell::set_window_manager_client(client);
}
-void WindowManager::OnWmConnected() {}
+void WindowManager::OnWmConnected() {
+ if (config_ != Config::MUS)
+ return;
+
+ CreateShell(nullptr);
+ if (show_primary_host_on_connect_)
+ Shell::GetPrimaryRootWindow()->GetHost()->Show();
+}
void WindowManager::OnWmSetBounds(aura::Window* window,
const gfx::Rect& bounds) {
« no previous file with comments | « ash/mus/window_manager.h ('k') | ash/mus/window_manager_application.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698