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

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

Issue 1530333005: Delete the ViewManager and WindowManager services. (Closed) Base URL: git@github.com:domokit/mojo.git@cl-2c
Patch Set: rebase Created 5 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
(Empty)
1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "services/view_manager/focus_controller.h"
6
7 #include "services/view_manager/focus_controller_delegate.h"
8 #include "services/view_manager/server_view.h"
9 #include "services/view_manager/server_view_drawn_tracker.h"
10
11 namespace view_manager {
12
13 FocusController::FocusController(FocusControllerDelegate* delegate,
14 ServerView* root)
15 : delegate_(delegate), root_(root) {
16 }
17
18 FocusController::~FocusController() {
19 }
20
21 void FocusController::SetFocusedView(ServerView* view) {
22 if (GetFocusedView() == view)
23 return;
24
25 SetFocusedViewImpl(view, CHANGE_SOURCE_EXPLICIT);
26 }
27
28 ServerView* FocusController::GetFocusedView() {
29 return drawn_tracker_ ? drawn_tracker_->view() : nullptr;
30 }
31
32 void FocusController::SetFocusedViewImpl(ServerView* view,
33 ChangeSource change_source) {
34 ServerView* old = GetFocusedView();
35
36 DCHECK(!view || view->IsDrawn(root_));
37
38 if (view)
39 drawn_tracker_.reset(new ServerViewDrawnTracker(root_, view, this));
40 else
41 drawn_tracker_.reset();
42
43 if (change_source == CHANGE_SOURCE_DRAWN_STATE_CHANGED)
44 delegate_->OnFocusChanged(old, view);
45 }
46
47 void FocusController::OnDrawnStateChanged(ServerView* ancestor,
48 ServerView* view,
49 bool is_drawn) {
50 DCHECK(!is_drawn); // We only observe when drawn.
51 SetFocusedViewImpl(ancestor, CHANGE_SOURCE_DRAWN_STATE_CHANGED);
52 }
53
54 } // namespace view_manager
OLDNEW
« no previous file with comments | « services/view_manager/focus_controller.h ('k') | services/view_manager/focus_controller_delegate.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698