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) |