summaryrefslogtreecommitdiffstats
path: root/views/controls
diff options
context:
space:
mode:
authordmazzoni@chromium.org <dmazzoni@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-06-18 13:53:37 +0000
committerdmazzoni@chromium.org <dmazzoni@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-06-18 13:53:37 +0000
commit83548a4b7d23ca252944fa1dabfbe85bf5742157 (patch)
tree1c76116c200885db472e61b0778a8e22e0ca052c /views/controls
parent7869f47d58149dc27a2e42de61d32f459c04d241 (diff)
downloadchromium_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.cc1
-rw-r--r--views/controls/button/menu_button.cc20
-rw-r--r--views/controls/button/menu_button.h2
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);