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

Side by Side Diff: services/window_manager/basic_focus_rules.h

Issue 747163002: Port more focus controller unit tests and fix our focus rules. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Remove O(n) solution with O(1). 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
« no previous file with comments | « mojo/tools/data/unittests ('k') | services/window_manager/basic_focus_rules.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 #ifndef SERVICES_WINDOW_MANAGER_BASIC_FOCUS_RULES_H_ 5 #ifndef SERVICES_WINDOW_MANAGER_BASIC_FOCUS_RULES_H_
6 #define SERVICES_WINDOW_MANAGER_BASIC_FOCUS_RULES_H_ 6 #define SERVICES_WINDOW_MANAGER_BASIC_FOCUS_RULES_H_
7 7
8 #include "services/window_manager/focus_rules.h" 8 #include "services/window_manager/focus_rules.h"
9 9
10 namespace mojo { 10 namespace mojo {
11 11
12 class View; 12 class View;
13 13
14 // The focusing rules used inside a window manager. 14 // The focusing rules used inside a window manager.
15 // 15 //
16 // This is intended to be a user supplyable, subclassable component passed to 16 // This is intended to be a user supplyable, subclassable component passed to
17 // WindowManagerApp, allowing for the creation of other window managers. 17 // WindowManagerApp, allowing for the creation of other window managers.
18 //
19 // TODO(erg): This was a straight move of the minimal focus rules from when
20 // WindowManagerApp directly used the wm::FocusController. This implementation
21 // is very incomplete. crbug.com/431047
22 class BasicFocusRules : public FocusRules { 18 class BasicFocusRules : public FocusRules {
23 public: 19 public:
24 BasicFocusRules(mojo::View* window_container); 20 BasicFocusRules(mojo::View* window_container);
25 ~BasicFocusRules() override; 21 ~BasicFocusRules() override;
26 22
27 protected: 23 protected:
28 // Overridden from mojo::FocusRules: 24 // Overridden from mojo::FocusRules:
25 bool SupportsChildActivation(mojo::View* view) const override;
29 bool IsToplevelView(mojo::View* view) const override; 26 bool IsToplevelView(mojo::View* view) const override;
30 bool CanActivateView(mojo::View* view) const override; 27 bool CanActivateView(mojo::View* view) const override;
31 bool CanFocusView(mojo::View* view) const override; 28 bool CanFocusView(mojo::View* view) const override;
32 mojo::View* GetToplevelView(mojo::View* view) const override; 29 mojo::View* GetToplevelView(mojo::View* view) const override;
33 mojo::View* GetActivatableView(mojo::View* view) const override; 30 mojo::View* GetActivatableView(mojo::View* view) const override;
34 mojo::View* GetFocusableView(mojo::View* view) const override; 31 mojo::View* GetFocusableView(mojo::View* view) const override;
35 mojo::View* GetNextActivatableView(mojo::View* activatable) const override; 32 mojo::View* GetNextActivatableView(mojo::View* activatable) const override;
36 33
37 private: 34 private:
35 bool CanFocusViewImpl(View* view) const;
36
37 // Tests to see if |view| is in |window_container_|.
38 bool IsViewParentedToWindowContainer(View* view) const;
39
38 mojo::View* window_container_; 40 mojo::View* window_container_;
39 41
40 DISALLOW_COPY_AND_ASSIGN(BasicFocusRules); 42 DISALLOW_COPY_AND_ASSIGN(BasicFocusRules);
41 }; 43 };
42 44
43 } // namespace mojo 45 } // namespace mojo
44 46
45 #endif // SERVICES_WINDOW_MANAGER_BASIC_FOCUS_RULES_H_ 47 #endif // SERVICES_WINDOW_MANAGER_BASIC_FOCUS_RULES_H_
OLDNEW
« no previous file with comments | « mojo/tools/data/unittests ('k') | services/window_manager/basic_focus_rules.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698