Chromium Code Reviews| Index: chrome/browser/ui/views/tabs/media_indicator_button.cc |
| diff --git a/chrome/browser/ui/views/tabs/media_indicator_button.cc b/chrome/browser/ui/views/tabs/media_indicator_button.cc |
| index 881a12446d212a76d7293745bb538f789e710869..d2c2d9cdbfd6777bbe68ab4ae55102598c035706 100644 |
| --- a/chrome/browser/ui/views/tabs/media_indicator_button.cc |
| +++ b/chrome/browser/ui/views/tabs/media_indicator_button.cc |
| @@ -71,18 +71,8 @@ void MediaIndicatorButton::TransitionToMediaState(TabMediaState next_state) { |
| if (next_state == media_state_) |
| return; |
| - if (next_state != TAB_MEDIA_STATE_NONE) { |
| - ui::ThemeProvider* tp = GetThemeProvider(); |
| - gfx::ImageSkia indicator_image = |
| - chrome::GetTabMediaIndicatorImage(next_state, tp).AsImageSkia(); |
| - SetImage(views::CustomButton::STATE_NORMAL, &indicator_image); |
| - SetImage(views::CustomButton::STATE_DISABLED, &indicator_image); |
| - gfx::ImageSkia affordance_image = |
| - chrome::GetTabMediaIndicatorAffordanceImage(next_state, tp) |
| - .AsImageSkia(); |
| - SetImage(views::CustomButton::STATE_HOVERED, &affordance_image); |
| - SetImage(views::CustomButton::STATE_PRESSED, &affordance_image); |
| - } |
| + if (next_state != TAB_MEDIA_STATE_NONE) |
| + ResetImages(next_state); |
| if ((media_state_ == TAB_MEDIA_STATE_AUDIO_PLAYING && |
| next_state == TAB_MEDIA_STATE_AUDIO_MUTING) || |
| @@ -138,6 +128,12 @@ void MediaIndicatorButton::UpdateEnabledForMuteToggle() { |
| SetEnabled(enable); |
| } |
| +void MediaIndicatorButton::OnParentTabButtonColorChanged() { |
| + if ((media_state_ == TAB_MEDIA_STATE_AUDIO_PLAYING) || |
|
Evan Stade
2015/09/23 18:16:35
nit: imo there are more parens than necessary here
Peter Kasting
2015/09/23 20:44:13
Yeah, this is an area where Chromium doesn't have
|
| + (media_state_ == TAB_MEDIA_STATE_AUDIO_MUTING)) |
| + ResetImages(media_state_); |
| +} |
| + |
| const char* MediaIndicatorButton::GetClassName() const { |
| return kViewClassName; |
| } |
| @@ -245,3 +241,15 @@ Tab* MediaIndicatorButton::GetTab() const { |
| DCHECK_EQ(static_cast<views::View*>(parent_tab_), parent()); |
| return parent_tab_; |
| } |
| + |
| +void MediaIndicatorButton::ResetImages(TabMediaState state) { |
| + SkColor color = parent_tab_->button_color(); |
| + gfx::ImageSkia indicator_image = |
| + chrome::GetTabMediaIndicatorImage(state, color).AsImageSkia(); |
| + SetImage(views::CustomButton::STATE_NORMAL, &indicator_image); |
| + SetImage(views::CustomButton::STATE_DISABLED, &indicator_image); |
| + gfx::ImageSkia affordance_image = |
| + chrome::GetTabMediaIndicatorAffordanceImage(state, color).AsImageSkia(); |
| + SetImage(views::CustomButton::STATE_HOVERED, &affordance_image); |
| + SetImage(views::CustomButton::STATE_PRESSED, &affordance_image); |
| +} |