From 50de29f59d62c1b359c8c706d33712655e0c9dd1 Mon Sep 17 00:00:00 2001 From: Adam Barth Date: Wed, 12 Nov 2014 10:32:54 -0800 Subject: [PATCH] Input events are broken in skydb When we removed Aura from the build, we broke event targeting. This CL hacks around the issue by blindly forwarding events from the root view to the content view in skydb. Once we have proper event targeting, we should rip out this code. R=erg@chromium.org Review URL: https://codereview.chromium.org/714213003 --- engine/src/flutter/tools/debugger/debugger.cc | 10 ++++++++++ engine/src/flutter/tools/debugger/debugger.h | 5 ++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/engine/src/flutter/tools/debugger/debugger.cc b/engine/src/flutter/tools/debugger/debugger.cc index 3fb3a9834a..da575c29f7 100644 --- a/engine/src/flutter/tools/debugger/debugger.cc +++ b/engine/src/flutter/tools/debugger/debugger.cc @@ -82,6 +82,16 @@ void SkyDebugger::OnViewBoundsChanged(mojo::View* view, content_->SetBounds(new_bounds); } +void SkyDebugger::OnViewInputEvent( + mojo::View* view, const mojo::EventPtr& event) { + if (view != root_) + return; + // Currently, the event targeting system is broken for mojo::Views, so we + // blindly forward events from the root to the content view. Once event + // targeting works, we should be able to rip out this code. + window_manager_app_->DispatchInputEventToView(content_, event.Clone()); +} + void SkyDebugger::Create(mojo::ApplicationConnection* connection, mojo::InterfaceRequest request) { mojo::WeakBindToRequest(this, &request); diff --git a/engine/src/flutter/tools/debugger/debugger.h b/engine/src/flutter/tools/debugger/debugger.h index 8c40fc4f5c..965505e1d1 100644 --- a/engine/src/flutter/tools/debugger/debugger.h +++ b/engine/src/flutter/tools/debugger/debugger.h @@ -51,12 +51,15 @@ class SkyDebugger : public mojo::ApplicationDelegate, mojo::ServiceProviderImpl* exported_services, scoped_ptr imported_services) override; void OnViewManagerDisconnected(mojo::ViewManager* view_manager) override; + + // Overriden from mojo::ViewObserver: void OnViewDestroyed(mojo::View* view) override; void OnViewBoundsChanged(mojo::View* view, const mojo::Rect& old_bounds, const mojo::Rect& new_bounds) override; + void OnViewInputEvent(mojo::View* view, const mojo::EventPtr& event) override; - // Overridden from InterfaceFactory + // Overridden from InterfaceFactory: void Create(mojo::ApplicationConnection* connection, mojo::InterfaceRequest request) override;