Index: ui/views/controls/button/md_text_button.cc |
diff --git a/ui/views/controls/button/md_text_button.cc b/ui/views/controls/button/md_text_button.cc |
index 43d7b153fc274eb01c463d866b5be109677c3bb3..9b3d05986a6469e9d7ec436c6575f13065149d8d 100644 |
--- a/ui/views/controls/button/md_text_button.cc |
+++ b/ui/views/controls/button/md_text_button.cc |
@@ -86,6 +86,11 @@ void MdTextButton::SetProminent(bool is_prominent) { |
UpdateColors(); |
} |
+void MdTextButton::SetBgColorOverride(const base::Optional<SkColor>& color) { |
+ bg_color_override_ = color; |
+ UpdateColors(); |
+} |
+ |
void MdTextButton::OnFocus() { |
LabelButton::OnFocus(); |
FocusRing::Install(this); |
@@ -122,12 +127,11 @@ std::unique_ptr<views::InkDropHighlight> MdTextButton::CreateInkDropHighlight() |
const { |
if (!ShouldShowInkDropHighlight()) |
return nullptr; |
- if (!is_prominent_) |
- return LabelButton::CreateInkDropHighlight(); |
// The prominent button hover effect is a shadow. |
const int kYOffset = 1; |
- const int kSkiaBlurRadius = 1; |
+ const int kSkiaBlurRadius = 2; |
+ const int shadow_alpha = is_prominent_ ? 0x3D : 0x1A; |
std::vector<gfx::ShadowValue> shadows; |
// The notion of blur that gfx::ShadowValue uses is twice the Skia/CSS value. |
// Skia counts the number of pixels outside the mask area whereas |
@@ -135,11 +139,13 @@ std::unique_ptr<views::InkDropHighlight> MdTextButton::CreateInkDropHighlight() |
// the mask bounds. |
shadows.push_back(gfx::ShadowValue(gfx::Vector2d(0, kYOffset), |
2 * kSkiaBlurRadius, |
- SkColorSetA(SK_ColorBLACK, 0x3D))); |
+ SkColorSetA(SK_ColorBLACK, shadow_alpha))); |
+ const SkColor fill_color = |
+ SkColorSetA(SK_ColorWHITE, is_prominent_ ? 0x0D : 0x05); |
return base::MakeUnique<InkDropHighlight>( |
gfx::RectF(GetLocalBounds()).CenterPoint(), |
base::WrapUnique(new BorderShadowLayerDelegate( |
- shadows, GetLocalBounds(), kInkDropSmallCornerRadius))); |
+ shadows, GetLocalBounds(), fill_color, kInkDropSmallCornerRadius))); |
} |
bool MdTextButton::ShouldShowInkDropForFocus() const { |
@@ -264,11 +270,8 @@ void MdTextButton::UpdateColors() { |
bg_color = color_utils::GetResultingPaintColor(shade, bg_color); |
} |
- const SkAlpha kStrokeOpacity = 0x1A; |
- SkColor stroke_color = (is_prominent_ || color_utils::IsDark(text_color)) |
- ? SkColorSetA(SK_ColorBLACK, kStrokeOpacity) |
- : SkColorSetA(SK_ColorWHITE, 2 * kStrokeOpacity); |
- |
+ SkColor stroke_color = |
+ is_prominent_ ? SK_ColorTRANSPARENT : SkColorSetA(text_color, 0x33); |
DCHECK_EQ(SK_AlphaOPAQUE, static_cast<int>(SkColorGetA(bg_color))); |
set_background(Background::CreateBackgroundPainter( |
true, Painter::CreateRoundRectWith1PxBorderPainter( |