summaryrefslogtreecommitdiffstats
path: root/ui/views
diff options
context:
space:
mode:
authorflackr@chromium.org <flackr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-06-06 05:29:44 +0000
committerflackr@chromium.org <flackr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-06-06 05:29:44 +0000
commit6f6f64d7d764408b12b5ac96a24522298b71a8db (patch)
treec1aaef3cc10336f5fa69319522cf272380b2837b /ui/views
parent527c7f372a3362b009831407126e34647dbe30bd (diff)
downloadchromium_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.cc12
-rw-r--r--ui/views/controls/button/text_button.h6
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;