Index: mash/wm/window_manager_application.cc |
diff --git a/mash/wm/window_manager_application.cc b/mash/wm/window_manager_application.cc |
index 748bc481030b538efb942bc6f6a5ffc0c34199b9..1f57a65a6408b5091632b0b09c5a92c780f8f9b4 100644 |
--- a/mash/wm/window_manager_application.cc |
+++ b/mash/wm/window_manager_application.cc |
@@ -92,6 +92,7 @@ bool WindowManagerApplication::ConfigureIncomingConnection( |
mojo::ApplicationConnection* connection) { |
connection->AddService<mus::mojom::AcceleratorRegistrar>(this); |
connection->AddService<mus::mojom::WindowManager>(this); |
+ connection->AddService<mus::mojom::UserWindowController>(this); |
return true; |
} |
@@ -137,6 +138,11 @@ void WindowManagerApplication::OnEmbed(mus::Window* root) { |
std::move(*request)); |
requests_.clear(); |
+ for (auto request : user_window_controller_requests_) |
+ user_window_controller_binding_.AddBinding(window_manager_.get(), |
+ std::move(*request)); |
+ user_window_controller_requests_.clear(); |
+ |
shadow_controller_.reset(new ShadowController(root->connection())); |
} |
@@ -178,6 +184,19 @@ void WindowManagerApplication::Create( |
} |
} |
+void WindowManagerApplication::Create( |
+ mojo::ApplicationConnection* connection, |
+ mojo::InterfaceRequest<mus::mojom::UserWindowController> request) { |
+ if (root_) { |
+ user_window_controller_binding_.AddBinding(window_manager_.get(), |
+ std::move(request)); |
+ } else { |
+ user_window_controller_requests_.push_back( |
+ new mojo::InterfaceRequest<mus::mojom::UserWindowController>( |
+ std::move(request))); |
+ } |
+} |
+ |
void WindowManagerApplication::OnWindowDestroyed(mus::Window* window) { |
DCHECK_EQ(window, root_); |
root_->RemoveObserver(this); |