diff options
author | flackr@chromium.org <flackr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-06-06 05:29:44 +0000 |
---|---|---|
committer | flackr@chromium.org <flackr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-06-06 05:29:44 +0000 |
commit | 6f6f64d7d764408b12b5ac96a24522298b71a8db (patch) | |
tree | c1aaef3cc10336f5fa69319522cf272380b2837b /ui/views | |
parent | 527c7f372a3362b009831407126e34647dbe30bd (diff) | |
download | chromium_src-6f6f64d7d764408b12b5ac96a24522298b71a8db.zip chromium_src-6f6f64d7d764408b12b5ac96a24522298b71a8db.tar.gz chromium_src-6f6f64d7d764408b12b5ac96a24522298b71a8db.tar.bz2 |
Indicate focused state on text buttons with blue outline.
BUG=118040
TEST=Visit http://www.pagetutor.com/keeper/mystash/secretstuff.html and focus the native views text buttons. They should get a blue outline to indicate focus. Examine native web buttons which should be unaffected by this patch.
Review URL: https://chromiumcodereview.appspot.com/10513009
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@140711 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ui/views')
-rw-r--r-- | ui/views/controls/button/text_button.cc | 12 | ||||
-rw-r--r-- | ui/views/controls/button/text_button.h | 6 |
2 files changed, 14 insertions, 4 deletions
diff --git a/ui/views/controls/button/text_button.cc b/ui/views/controls/button/text_button.cc index 32f1b21..bb3aa59 100644 --- a/ui/views/controls/button/text_button.cc +++ b/ui/views/controls/button/text_button.cc @@ -469,6 +469,7 @@ void TextButtonBase::GetExtraParams( params->button.checked = false; params->button.indeterminate = false; params->button.is_default = false; + params->button.is_focused = false; params->button.has_border = false; params->button.classic_state = 0; params->button.background_color = @@ -850,7 +851,8 @@ void NativeTextButton::OnPaintFocusBorder(gfx::Canvas* canvas) { canvas->DrawFocusRect(rect); } #else - TextButton::OnPaintFocusBorder(canvas); + // Paint nothing, focus will be indicated with a border highlight drawn by + // NativeThemeBase::PaintButton. #endif } @@ -858,6 +860,14 @@ void NativeTextButton::GetExtraParams( ui::NativeTheme::ExtraParams* params) const { TextButton::GetExtraParams(params); params->button.has_border = true; +#if !defined(OS_WIN) + // Windows may paint a dotted focus rect in + // NativeTextButton::OnPaintFocusBorder. To avoid getting two focus + // indications (A dotted rect and a highlighted border) only set is_focused on + // non windows platforms. + params->button.is_focused = HasFocus() && + (focusable() || IsAccessibilityFocusable()); +#endif } } // namespace views diff --git a/ui/views/controls/button/text_button.h b/ui/views/controls/button/text_button.h index dcb78ca..ba78db1 100644 --- a/ui/views/controls/button/text_button.h +++ b/ui/views/controls/button/text_button.h @@ -401,6 +401,9 @@ class VIEWS_EXPORT NativeTextButton : public TextButton { explicit NativeTextButton(ButtonListener* listener); NativeTextButton(ButtonListener* listener, const string16& text); + // Overridden from View: + virtual void OnPaintFocusBorder(gfx::Canvas* canvas) OVERRIDE; + // Overridden from TextButton: virtual gfx::Size GetMinimumSize() OVERRIDE; virtual std::string GetClassName() const OVERRIDE; @@ -408,9 +411,6 @@ class VIEWS_EXPORT NativeTextButton : public TextButton { private: void Init(); - // Overridden from View: - virtual void OnPaintFocusBorder(gfx::Canvas* canvas) OVERRIDE; - // Overridden from TextButton: virtual void GetExtraParams( ui::NativeTheme::ExtraParams* params) const OVERRIDE; |