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

Unified Diff: mash/wm/window_manager_application.cc

Issue 1576683002: Add rudimentary mash shelf functionality. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Sync and rebase. Created 4 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
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);

Powered by Google App Engine
This is Rietveld 408576698