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

Unified Diff: ui/views/focus/focus_manager.h

Issue 1690543004: MacViews: Implement Full Keyboard Access. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address review comments. Make patch smaller temporarily. Created 4 years, 9 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
Index: ui/views/focus/focus_manager.h
diff --git a/ui/views/focus/focus_manager.h b/ui/views/focus/focus_manager.h
index 6d5195e45e605fbbdb593be543b748172895c734..3491f125c2d1340dbda4ed9bb1330ebbc4690f29 100644
--- a/ui/views/focus/focus_manager.h
+++ b/ui/views/focus/focus_manager.h
@@ -201,7 +201,8 @@ class VIEWS_EXPORT FocusManager {
// Restore the view saved with a previous call to StoreFocusedView(). Used
// when the widget becomes active. Returns true when the previous view was
- // successfully refocused - otherwise false.
+ // successfully refocused. In case, the stored view is no longer focusable,
tapted 2016/03/15 05:05:32 nit: no comma after 'case'
karandeepb 2016/03/17 07:24:46 Done.
+ // it advances focus and returns false.
bool RestoreFocusedView();
// Sets the |view| to be restored when calling RestoreFocusView. This is used
@@ -325,6 +326,12 @@ class VIEWS_EXPORT FocusManager {
bool reverse,
bool dont_loop);
+ bool keyboard_accessible() const { return keyboard_accessible_; }
+
+ // Updates |keyboard_accessible_| to the given value and advances focus if
+ // necessary.
+ void SetKeyboardAccessible(bool keyboard_accessible);
+
private:
// Returns the focusable view found in the FocusTraversable specified starting
// at the specified view. This traverses down along the FocusTraversable
@@ -338,6 +345,11 @@ class VIEWS_EXPORT FocusManager {
// and should not be processed further.
bool ProcessArrowKeyTraversal(const ui::KeyEvent& event);
+ // Returns true if the |view| is focusable (checking
+ // IsAccessibilityFocusable() if |keyboard_accessible_ | is true). |view|
tapted 2016/03/15 05:05:32 nit: spacing after keyboard_accessible_ Also I th
karandeepb 2016/03/17 07:24:47 Done.
+ // must not be null.
+ bool IsFocusable(View* view) const;
+
// Whether arrow key traversal is enabled.
static bool arrow_key_traversal_enabled_;
@@ -370,6 +382,14 @@ class VIEWS_EXPORT FocusManager {
// See description above getter.
bool is_changing_focus_;
+ // This is true if full keyboard accessibility is needed which causes
tapted 2016/03/15 05:05:32 nit: True if full keyboard accessibility is needed
karandeepb 2016/03/17 07:24:46 Done.
+ // IsAccessibilityFocusable() to be checked rather than IsFocusable(). This
+ // can be set depending on platform constraints. For example, on Mac, this is
+ // true when Full Keyboard Access mode is on. FocusSearch uses this in
+ // addition to its own accessibility mode, which handles accessibility at the
+ // FocusTraversable level. Default value is false.
+ bool keyboard_accessible_;
+
DISALLOW_COPY_AND_ASSIGN(FocusManager);
};

Powered by Google App Engine
This is Rietveld 408576698