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

Side by Side Diff: services/window_manager/focus_controller.cc

Issue 805123003: Adds capture to the mojo window_manager. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: sky comments Created 6 years 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "services/window_manager/focus_controller.h" 5 #include "services/window_manager/focus_controller.h"
6 6
7 #include "base/auto_reset.h" 7 #include "base/auto_reset.h"
8 #include "mojo/services/view_manager/public/cpp/view_property.h" 8 #include "mojo/services/view_manager/public/cpp/view_property.h"
9 #include "mojo/services/view_manager/public/cpp/view_tracker.h" 9 #include "mojo/services/view_manager/public/cpp/view_tracker.h"
10 #include "services/window_manager/focus_controller_observer.h" 10 #include "services/window_manager/focus_controller_observer.h"
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
67 bool FocusController::CanActivateView(View* view) const { 67 bool FocusController::CanActivateView(View* view) const {
68 return rules_->CanActivateView(view); 68 return rules_->CanActivateView(view);
69 } 69 }
70 70
71 void FocusController::FocusView(View* view) { 71 void FocusController::FocusView(View* view) {
72 if (view && 72 if (view &&
73 (view->Contains(focused_view_) || view->Contains(active_view_))) { 73 (view->Contains(focused_view_) || view->Contains(active_view_))) {
74 return; 74 return;
75 } 75 }
76 76
77 // TODO(erg): We need to early abort in the of a view having
78 // capture. However, we currently don't have a capture client here.
79
80 // Focusing a window also activates its containing activatable window. Note 77 // Focusing a window also activates its containing activatable window. Note
81 // that the rules could redirect activation activation and/or focus. 78 // that the rules could redirect activation activation and/or focus.
82 View* focusable = rules_->GetFocusableView(view); 79 View* focusable = rules_->GetFocusableView(view);
83 View* activatable = 80 View* activatable =
84 focusable ? rules_->GetActivatableView(focusable) : nullptr; 81 focusable ? rules_->GetActivatableView(focusable) : nullptr;
85 82
86 // We need valid focusable/activatable windows in the event we're not clearing 83 // We need valid focusable/activatable windows in the event we're not clearing
87 // focus. "Clearing focus" is inferred by whether or not |window| passed to 84 // focus. "Clearing focus" is inferred by whether or not |window| passed to
88 // this function is non-null. 85 // this function is non-null.
89 if (view && (!focusable || !activatable)) 86 if (view && (!focusable || !activatable))
(...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after
313 } 310 }
314 311
315 FocusController* GetFocusController(View* root_view) { 312 FocusController* GetFocusController(View* root_view) {
316 if (root_view) 313 if (root_view)
317 DCHECK_EQ(root_view->GetRoot(), root_view); 314 DCHECK_EQ(root_view->GetRoot(), root_view);
318 return root_view ? 315 return root_view ?
319 root_view->GetLocalProperty(kRootViewFocusController) : nullptr; 316 root_view->GetLocalProperty(kRootViewFocusController) : nullptr;
320 } 317 }
321 318
322 } // namespace window_manager 319 } // namespace window_manager
OLDNEW
« no previous file with comments | « services/window_manager/focus_controller.h ('k') | services/window_manager/focus_controller_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698