| Index: mash/wm/window_manager_application.cc
|
| diff --git a/mash/wm/window_manager_application.cc b/mash/wm/window_manager_application.cc
|
| index 57fb884cc2d3062385317f055f398b3493523c1c..660ea4ae91d1eacf899567f8efd987a1034a11a0 100644
|
| --- a/mash/wm/window_manager_application.cc
|
| +++ b/mash/wm/window_manager_application.cc
|
| @@ -13,6 +13,7 @@
|
| #include "mash/wm/accelerator_registrar_impl.h"
|
| #include "mash/wm/root_window_controller.h"
|
| #include "mash/wm/root_windows_observer.h"
|
| +#include "mash/wm/shelf_layout.h"
|
| #include "mash/wm/user_window_controller_impl.h"
|
| #include "mojo/converters/input_events/input_events_type_converters.h"
|
| #include "mojo/services/tracing/public/cpp/tracing_impl.h"
|
| @@ -70,6 +71,20 @@ void WindowManagerApplication::OnRootWindowControllerDoneInit(
|
| std::move(*request));
|
| user_window_controller_requests_.clear();
|
|
|
| + LOG(ERROR) << "MSW OnRootWindowControllerDoneInit A";
|
| + // TODO(msw): figure out if this should be per display, or global.
|
| + if (root_controller == (*root_controllers_.begin())) {
|
| + LOG(ERROR) << "MSW OnRootWindowControllerDoneInit B";
|
| + ShelfLayout* shelf_layout = static_cast<ShelfLayout*>(
|
| + root_controller->GetLayoutManagerForContainer(
|
| + mash::wm::mojom::Container::USER_SHELF));
|
| + for (auto& request : shelf_layout_requests_) {
|
| + LOG(ERROR) << "MSW OnRootWindowControllerDoneInit C";
|
| + shelf_layout_binding_.AddBinding(shelf_layout, std::move(*request));
|
| + }
|
| + shelf_layout_requests_.clear();
|
| + }
|
| +
|
| FOR_EACH_OBSERVER(RootWindowsObserver, root_windows_observers_,
|
| OnRootWindowControllerAdded(root_controller));
|
| }
|
| @@ -120,8 +135,10 @@ void WindowManagerApplication::Initialize(mojo::Connector* connector,
|
| }
|
|
|
| bool WindowManagerApplication::AcceptConnection(mojo::Connection* connection) {
|
| - connection->AddInterface<mash::wm::mojom::UserWindowController>(this);
|
| + connection->AddInterface<mojom::ShelfLayout>(this);
|
| + connection->AddInterface<mojom::UserWindowController>(this);
|
| connection->AddInterface<mus::mojom::AcceleratorRegistrar>(this);
|
| + LOG(ERROR) << "MSW AcceptConn...? " << connection->GetRemoteIdentity().name();
|
| if (connection->GetRemoteIdentity().name() == "mojo:mash_session")
|
| connection->GetInterface(&session_);
|
| return true;
|
| @@ -129,13 +146,33 @@ bool WindowManagerApplication::AcceptConnection(mojo::Connection* connection) {
|
|
|
| void WindowManagerApplication::Create(
|
| mojo::Connection* connection,
|
| - mojo::InterfaceRequest<mash::wm::mojom::UserWindowController> request) {
|
| + mojo::InterfaceRequest<mojom::ShelfLayout> request) {
|
| + LOG(ERROR) << "MSW WindowManagerApplication::Create<ShelfLayout> A";
|
| + // TODO(msw): Handle multiple shelves (one per display).
|
| + if (!root_controllers_.empty() && (*root_controllers_.begin())->root()) {
|
| + LOG(ERROR) << "MSW WindowManagerApplication::Create<ShelfLayout> B";
|
| + ShelfLayout* shelf_layout = static_cast<ShelfLayout*>(
|
| + (*root_controllers_.begin())->GetLayoutManagerForContainer(
|
| + mash::wm::mojom::Container::USER_SHELF));
|
| + shelf_layout_binding_.AddBinding(shelf_layout, std::move(request));
|
| + } else {
|
| + // TODO(msw): We may not need this case??? (not sure...)
|
| + LOG(ERROR) << "MSW WindowManagerApplication::Create<ShelfLayout> C";
|
| + shelf_layout_requests_.push_back(make_scoped_ptr(
|
| + new mojo::InterfaceRequest<mojom::ShelfLayout>(std::move(request))));
|
| + }
|
| +}
|
| +
|
| +void WindowManagerApplication::Create(
|
| + mojo::Connection* connection,
|
| + mojo::InterfaceRequest<mojom::UserWindowController> request) {
|
| + LOG(ERROR) << "MSW WindowManagerApplication::Create<UserWindowController> A";
|
| if (!root_controllers_.empty() && (*root_controllers_.begin())->root()) {
|
| user_window_controller_binding_.AddBinding(user_window_controller_.get(),
|
| std::move(request));
|
| } else {
|
| user_window_controller_requests_.push_back(make_scoped_ptr(
|
| - new mojo::InterfaceRequest<mash::wm::mojom::UserWindowController>(
|
| + new mojo::InterfaceRequest<mojom::UserWindowController>(
|
| std::move(request))));
|
| }
|
| }
|
|
|