Index: ui/views/controls/link.cc |
diff --git a/ui/views/controls/link.cc b/ui/views/controls/link.cc |
index 2fced0be7b84ba25c4ad7d8a6120cb6f30bc8bc8..3d4257b29099c1e2163d58b94df225bfd5c56d75 100644 |
--- a/ui/views/controls/link.cc |
+++ b/ui/views/controls/link.cc |
@@ -170,7 +170,7 @@ void Link::GetAccessibleNodeData(ui::AXNodeData* node_data) { |
void Link::OnEnabledChanged() { |
RecalculateFont(); |
- View::OnEnabledChanged(); |
+ View::OnEnabledChanged(); // Jump over Label. |
} |
void Link::OnFocus() { |
@@ -199,15 +199,13 @@ void Link::SetText(const base::string16& text) { |
void Link::OnNativeThemeChanged(const ui::NativeTheme* theme) { |
Label::OnNativeThemeChanged(theme); |
- Label::SetEnabledColor(GetEnabledColor()); |
- SetDisabledColor( |
- theme->GetSystemColor(ui::NativeTheme::kColorId_LinkDisabled)); |
+ Label::SetEnabledColor(GetColor()); |
} |
void Link::SetEnabledColor(SkColor color) { |
requested_enabled_color_set_ = true; |
requested_enabled_color_ = color; |
- Label::SetEnabledColor(GetEnabledColor()); |
+ Label::SetEnabledColor(GetColor()); |
} |
bool Link::IsSelectionSupported() const { |
@@ -237,7 +235,7 @@ void Link::Init() { |
void Link::SetPressed(bool pressed) { |
if (pressed_ != pressed) { |
pressed_ = pressed; |
- Label::SetEnabledColor(GetEnabledColor()); |
+ Label::SetEnabledColor(GetColor()); |
RecalculateFont(); |
SchedulePaint(); |
} |
@@ -269,17 +267,18 @@ void Link::ConfigureFocus() { |
} |
} |
-SkColor Link::GetEnabledColor() { |
+SkColor Link::GetColor() { |
+ const ui::NativeTheme* theme = GetNativeTheme(); |
+ DCHECK(theme); |
+ if (!enabled()) |
+ return theme->GetSystemColor(ui::NativeTheme::kColorId_LinkDisabled); |
+ |
if (requested_enabled_color_set_) |
return requested_enabled_color_; |
- if (GetNativeTheme()) { |
- return GetNativeTheme()->GetSystemColor( |
- pressed_ ? ui::NativeTheme::kColorId_LinkPressed |
- : ui::NativeTheme::kColorId_LinkEnabled); |
- } |
- |
- return gfx::kPlaceholderColor; |
+ return GetNativeTheme()->GetSystemColor( |
+ pressed_ ? ui::NativeTheme::kColorId_LinkPressed |
+ : ui::NativeTheme::kColorId_LinkEnabled); |
} |
} // namespace views |