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

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

Issue 1092033003: Pulls display related changes from mojo to chrome (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 8 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 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 "mojo/services/view_manager/focus_controller.h"
6
7 #include "mojo/services/view_manager/focus_controller_delegate.h"
8 #include "mojo/services/view_manager/server_view.h"
9 #include "mojo/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 | « mojo/services/view_manager/focus_controller.h ('k') | mojo/services/view_manager/focus_controller_delegate.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698