| 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..45d2e0100f61722a2f13a37ea7a4da79328025a2 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 ||
|
| + 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);
|
| +}
|
|
|