Index: ash/mus/window_manager.cc |
diff --git a/ash/mus/window_manager.cc b/ash/mus/window_manager.cc |
index b47556ffacea7363bf53d2116f53e4f8955c8373..a563880f28b5a5f207a0d979bd464bd7bd75202f 100644 |
--- a/ash/mus/window_manager.cc |
+++ b/ash/mus/window_manager.cc |
@@ -75,11 +75,14 @@ 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>()) { |
+ LOG(WARNING) << "WindowManager!"; |
property_converter_->RegisterProperty( |
kPanelAttachedKey, ui::mojom::WindowManager::kPanelAttached_Property, |
aura::PropertyConverter::CreateAcceptAnyValueCallback()); |
@@ -117,12 +120,16 @@ 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_); |
+ LOG(WARNING) << "config is mash? " << (config_ == Config::MASH); |
- screen_ = base::MakeUnique<ScreenMus>(display_controller_.get()); |
- display::Screen::SetScreenInstance(screen_.get()); |
+ // TODO(sky): remove and use MUS code. |
+ if (config_ == Config::MASH) { |
+ // |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()); |
+ } |
pointer_watcher_event_router_ = |
base::MakeUnique<views::PointerWatcherEventRouter>( |
@@ -220,10 +227,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_); |
@@ -330,7 +337,13 @@ void WindowManager::SetWindowManagerClient(aura::WindowManagerClient* client) { |
ash::Shell::set_window_manager_client(client); |
} |
-void WindowManager::OnWmConnected() {} |
+void WindowManager::OnWmConnected() { |
+ if (config_ == Config::MUS) { |
+ CreateShell(nullptr); |
+ if (show_primary_host_on_connect_) |
+ Shell::GetPrimaryRootWindow()->GetHost()->Show(); |
+ } |
+} |
void WindowManager::OnWmSetBounds(aura::Window* window, |
const gfx::Rect& bounds) { |
@@ -492,6 +505,7 @@ void WindowManager::OnWmDisplayRemoved( |
void WindowManager::OnWmDisplayModified(const display::Display& display) { |
// Ash relies on the Display being updated, then the WindowTreeHost's window, |
// and finally DisplayObservers. |
+ // XXX make sure this isn't called for manually_created. |
display::DisplayList& display_list = screen_->display_list(); |
std::unique_ptr<display::DisplayListObserverLock> display_lock = |
display_list.SuspendObserverUpdates(); |