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

Unified Diff: mojo/services/window_manager/window_manager_app.cc

Issue 737913002: Dispatch key events to the currently focused window. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 6 years, 1 month 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: 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 cb807d1da97cc210a13d2f4019673e48cb691549..0ad316bc474c01ba3b6283f93d72999d30310cad 100644
--- a/mojo/services/window_manager/window_manager_app.cc
+++ b/mojo/services/window_manager/window_manager_app.cc
@@ -123,6 +123,10 @@ bool WindowManagerApp::IsReady() const {
void WindowManagerApp::InitFocus(scoped_ptr<mojo::FocusRules> rules) {
focus_controller_.reset(new mojo::FocusController(rules.Pass()));
focus_controller_->AddObserver(this);
+
+ if (root_)
+ ViewTarget::TargetFromView(root_)
+ ->set_focus_controller(focus_controller_.get());
}
void WindowManagerApp::Embed(
@@ -277,10 +281,13 @@ void WindowManagerApp::RegisterSubtree(View* view) {
// installed there.
if (view == root_) {
ViewTarget* target = ViewTarget::TargetFromView(view);
+ if (focus_controller_)
sky 2014/11/18 22:36:38 Is it really possible to get here with no focuscon
Elliot Glaysher 2014/11/18 23:52:30 Not only is it possible, it is the default. Regis
+ target->set_focus_controller(focus_controller_.get());
target->SetEventTargeter(scoped_ptr<ViewTargeter>(new ViewTargeter()));
target->AddPreTargetHandler(this);
view_event_dispatcher_->SetRootViewTarget(target);
}
+
registered_view_id_set_.insert(view->id());
View::Children::const_iterator it = view->children().begin();
for (; it != view->children().end(); ++it)
« mojo/services/window_manager/view_target.h ('K') | « mojo/services/window_manager/view_targeter.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698