| Index: mojo/services/window_manager/window_manager_app.cc
|
| diff --git a/mojo/services/window_manager/window_manager_app.cc b/mojo/services/window_manager/window_manager_app.cc
|
| index 518671ce2cefe19b5709f12cfa784c0e453c0292..ffd80a89d6a10f1314690ecac41265597814e6af 100644
|
| --- a/mojo/services/window_manager/window_manager_app.cc
|
| +++ b/mojo/services/window_manager/window_manager_app.cc
|
| @@ -81,12 +81,14 @@ WindowManagerApp::WindowManagerApp(
|
| ViewManagerDelegate* view_manager_delegate,
|
| WindowManagerDelegate* window_manager_delegate)
|
| : shell_(nullptr),
|
| + window_manager_service2_factory_(this),
|
| window_manager_service_factory_(this),
|
| wrapped_view_manager_delegate_(view_manager_delegate),
|
| - wrapped_window_manager_delegate_(window_manager_delegate),
|
| + window_manager_delegate_(window_manager_delegate),
|
| view_manager_(NULL),
|
| root_(NULL),
|
| - dummy_delegate_(new DummyDelegate) {
|
| + dummy_delegate_(new DummyDelegate),
|
| + window_manager_client_(nullptr) {
|
| }
|
|
|
| WindowManagerApp::~WindowManagerApp() {}
|
| @@ -101,12 +103,12 @@ aura::Window* WindowManagerApp::GetWindowForViewId(Id view) {
|
| return it != view_id_to_window_map_.end() ? it->second : NULL;
|
| }
|
|
|
| -void WindowManagerApp::AddConnection(WindowManagerServiceImpl* connection) {
|
| +void WindowManagerApp::AddConnection(WindowManagerService2Impl* connection) {
|
| DCHECK(connections_.find(connection) == connections_.end());
|
| connections_.insert(connection);
|
| }
|
|
|
| -void WindowManagerApp::RemoveConnection(WindowManagerServiceImpl* connection) {
|
| +void WindowManagerApp::RemoveConnection(WindowManagerService2Impl* connection) {
|
| DCHECK(connections_.find(connection) != connections_.end());
|
| connections_.erase(connection);
|
| }
|
| @@ -157,8 +159,9 @@ void WindowManagerApp::Initialize(ApplicationImpl* impl) {
|
|
|
| bool WindowManagerApp::ConfigureIncomingConnection(
|
| ApplicationConnection* connection) {
|
| - connection->AddService(&window_manager_service_factory_);
|
| + connection->AddService(&window_manager_service2_factory_);
|
| connection->AddService(view_manager_client_factory_.get());
|
| + connection->AddService(&window_manager_service_factory_);
|
| return true;
|
| }
|
|
|
| @@ -171,7 +174,6 @@ void WindowManagerApp::OnEmbed(ViewManager* view_manager,
|
| scoped_ptr<ServiceProvider> imported_services) {
|
| DCHECK(!view_manager_ && !root_);
|
| view_manager_ = view_manager;
|
| - view_manager_->SetWindowManagerDelegate(this);
|
| root_ = root;
|
|
|
| window_tree_host_.reset(new WindowTreeHostMojo(shell_, root_));
|
| @@ -204,22 +206,6 @@ void WindowManagerApp::OnViewManagerDisconnected(
|
| }
|
|
|
| ////////////////////////////////////////////////////////////////////////////////
|
| -// WindowManagerApp, WindowManagerDelegate implementation:
|
| -
|
| -void WindowManagerApp::Embed(
|
| - const String& url,
|
| - InterfaceRequest<ServiceProvider> service_provider) {
|
| - if (wrapped_window_manager_delegate_)
|
| - wrapped_window_manager_delegate_->Embed(url, service_provider.Pass());
|
| -}
|
| -
|
| -void WindowManagerApp::DispatchEvent(EventPtr event) {
|
| - scoped_ptr<ui::Event> ui_event = event.To<scoped_ptr<ui::Event> >();
|
| - if (ui_event)
|
| - window_tree_host_->SendEventToProcessor(ui_event.get());
|
| -}
|
| -
|
| -////////////////////////////////////////////////////////////////////////////////
|
| // WindowManagerApp, ViewObserver implementation:
|
|
|
| void WindowManagerApp::OnTreeChanged(
|
| @@ -270,8 +256,15 @@ void WindowManagerApp::OnViewBoundsChanged(View* view,
|
| // WindowManagerApp, ui::EventHandler implementation:
|
|
|
| void WindowManagerApp::OnEvent(ui::Event* event) {
|
| - aura::Window* window = static_cast<aura::Window*>(event->target());
|
| - view_manager_->DispatchEvent(GetViewForWindow(window), Event::From(*event));
|
| + if (!window_manager_client_)
|
| + return;
|
| +
|
| + View* view = GetViewForWindow(static_cast<aura::Window*>(event->target()));
|
| + if (!view)
|
| + return;
|
| +
|
| + window_manager_client_->DispatchInputEventToView(view->id(),
|
| + Event::From(*event));
|
| }
|
|
|
| ////////////////////////////////////////////////////////////////////////////////
|
|
|