diff options
author | dmazzoni@chromium.org <dmazzoni@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-06-18 13:53:37 +0000 |
---|---|---|
committer | dmazzoni@chromium.org <dmazzoni@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-06-18 13:53:37 +0000 |
commit | 83548a4b7d23ca252944fa1dabfbe85bf5742157 (patch) | |
tree | 1c76116c200885db472e61b0778a8e22e0ca052c /views/controls | |
parent | 7869f47d58149dc27a2e42de61d32f459c04d241 (diff) | |
download | chromium_src-83548a4b7d23ca252944fa1dabfbe85bf5742157.zip chromium_src-83548a4b7d23ca252944fa1dabfbe85bf5742157.tar.gz chromium_src-83548a4b7d23ca252944fa1dabfbe85bf5742157.tar.bz2 |
Improve toolbar keyboard accessibility.
Design doc: https://docs.google.com/a/google.com/Doc?docid=0ATICCjR-gNReY2djdjkyNnNfNzl4ZnpiODQ2Mg&hl=en
BUG=40745
BUG=36728
BUG=36222
TEST=New test added to focus_manager_unittest.cc
Review URL: http://codereview.chromium.org/2737010
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@50234 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'views/controls')
-rw-r--r-- | views/controls/button/button.cc | 1 | ||||
-rw-r--r-- | views/controls/button/menu_button.cc | 20 | ||||
-rw-r--r-- | views/controls/button/menu_button.h | 2 |
3 files changed, 12 insertions, 11 deletions
diff --git a/views/controls/button/button.cc b/views/controls/button/button.cc index 0305451..52d5747 100644 --- a/views/controls/button/button.cc +++ b/views/controls/button/button.cc @@ -52,6 +52,7 @@ Button::Button(ButtonListener* listener) : listener_(listener), tag_(-1), mouse_event_flags_(0) { + set_accessibility_focusable(true); } void Button::NotifyClick(const views::Event& event) { diff --git a/views/controls/button/menu_button.cc b/views/controls/button/menu_button.cc index fe86d7f..3af0326 100644 --- a/views/controls/button/menu_button.cc +++ b/views/controls/button/menu_button.cc @@ -213,17 +213,17 @@ void MenuButton::OnMouseReleased(const MouseEvent& e, } } -// When the space bar or the enter key is pressed we need to show the menu. -bool MenuButton::OnKeyReleased(const KeyEvent& e) { -#if defined(OS_WIN) - if ((e.GetKeyCode() == base::VKEY_SPACE) || - (e.GetKeyCode() == base::VKEY_RETURN)) { - return Activate(); +bool MenuButton::OnKeyPressed(const KeyEvent& e) { + if (e.GetKeyCode() == base::VKEY_SPACE || + e.GetKeyCode() == base::VKEY_RETURN || + e.GetKeyCode() == base::VKEY_UP || + e.GetKeyCode() == base::VKEY_DOWN) { + bool result = Activate(); + if (GetFocusManager()->GetFocusedView() == NULL) + RequestFocus(); + return result; } -#else - NOTIMPLEMENTED(); -#endif - return true; + return false; } // The reason we override View::OnMouseExited is because we get this event when diff --git a/views/controls/button/menu_button.h b/views/controls/button/menu_button.h index c4e95e4..1e20250 100644 --- a/views/controls/button/menu_button.h +++ b/views/controls/button/menu_button.h @@ -57,8 +57,8 @@ class MenuButton : public TextButton { // behavior virtual bool OnMousePressed(const MouseEvent& e); virtual void OnMouseReleased(const MouseEvent& e, bool canceled); - virtual bool OnKeyReleased(const KeyEvent& e); virtual void OnMouseExited(const MouseEvent& event); + virtual bool OnKeyPressed(const KeyEvent& e); // Accessibility accessors, overridden from View. virtual bool GetAccessibleDefaultAction(std::wstring* action); |