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

Unified Diff: services/ui/ws/window_tree.cc

Issue 2650833002: Set focusibility correctly when initializing a window in mus+ash. (Closed)
Patch Set: addressed feedback. Created 3 years, 11 months 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
« no previous file with comments | « services/ui/ws/window_server_test_base.cc ('k') | services/ui/ws/window_tree_client_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: services/ui/ws/window_tree.cc
diff --git a/services/ui/ws/window_tree.cc b/services/ui/ws/window_tree.cc
index 1fb3e481e9fa42ffc638627e8c523b92c7417b7c..7170b7c10e02c8886baa22f044f81a76b4bbbb26 100644
--- a/services/ui/ws/window_tree.cc
+++ b/services/ui/ws/window_tree.cc
@@ -1545,10 +1545,20 @@ void WindowTree::SetFocus(uint32_t change_id, Id transport_window_id) {
void WindowTree::SetCanFocus(Id transport_window_id, bool can_focus) {
ServerWindow* window =
GetWindowByClientId(ClientWindowId(transport_window_id));
- // TODO(sky): there should be an else case (it shouldn't route to wm and
- // policy allows, then set_can_focus).
- if (window && ShouldRouteToWindowManager(window))
+ if (!window) {
+ DVLOG(1) << "SetCanFocus failed (invalid id)";
+ return;
+ }
+
+ if (ShouldRouteToWindowManager(window)) {
+ WindowManagerDisplayRoot* display_root =
+ GetWindowManagerDisplayRoot(window);
+ WindowTree* wm_tree = display_root->window_manager_state()->window_tree();
+ wm_tree->window_manager_internal_->WmSetCanFocus(transport_window_id,
+ can_focus);
+ } else if (access_policy_->CanSetFocus(window)) {
window->set_can_focus(can_focus);
+ }
}
void WindowTree::SetCanAcceptEvents(Id transport_window_id,
« no previous file with comments | « services/ui/ws/window_server_test_base.cc ('k') | services/ui/ws/window_tree_client_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698