| Index: ash/system/audio/tray_volume.cc
|
| diff --git a/ash/system/audio/tray_volume.cc b/ash/system/audio/tray_volume.cc
|
| index fba2fe871c0c8307da27b1e97d94558d5f3ab7f9..5b9d3a38541c2785474f7b26fc330f31393f64fd 100644
|
| --- a/ash/system/audio/tray_volume.cc
|
| +++ b/ash/system/audio/tray_volume.cc
|
| @@ -106,7 +106,8 @@ class VolumeView : public views::View,
|
| ash::Shell::GetInstance()->tray_delegate();
|
| slider_ = new views::Slider(this, views::Slider::HORIZONTAL);
|
| slider_->set_focus_border_color(kFocusBorderColor);
|
| - slider_->SetValue(delegate->GetVolumeLevel());
|
| + slider_->SetValue(
|
| + delegate->IsAudioMuted() ? 0.0 : delegate->GetVolumeLevel());
|
| slider_->SetAccessibleName(
|
| ui::ResourceBundle::GetSharedInstance().GetLocalizedString(
|
| IDS_ASH_STATUS_TRAY_VOLUME));
|
| @@ -148,8 +149,11 @@ class VolumeView : public views::View,
|
| float value,
|
| float old_value,
|
| views::SliderChangeReason reason) OVERRIDE {
|
| - if (reason == views::VALUE_CHANGED_BY_USER)
|
| - ash::Shell::GetInstance()->tray_delegate()->SetVolumeLevel(value);
|
| + if (reason == views::VALUE_CHANGED_BY_USER) {
|
| + ash::SystemTrayDelegate* delegate =
|
| + ash::Shell::GetInstance()->tray_delegate();
|
| + delegate->SetVolumeLevel(value);
|
| + }
|
| icon_->Update();
|
| }
|
|
|
| @@ -171,7 +175,9 @@ TrayVolume::~TrayVolume() {
|
| }
|
|
|
| bool TrayVolume::GetInitialVisibility() {
|
| - return ash::Shell::GetInstance()->tray_delegate()->IsAudioMuted();
|
| + ash::SystemTrayDelegate* delegate =
|
| + ash::Shell::GetInstance()->tray_delegate();
|
| + return delegate->GetVolumeLevel() == 0.0 || delegate->IsAudioMuted();
|
| }
|
|
|
| views::View* TrayVolume::CreateDefaultView(user::LoginStatus status) {
|
| @@ -201,6 +207,8 @@ void TrayVolume::OnVolumeChanged(float percent) {
|
| tray_view()->SetVisible(GetInitialVisibility());
|
|
|
| if (volume_view_) {
|
| + if (ash::Shell::GetInstance()->tray_delegate()->IsAudioMuted())
|
| + percent = 0.0;
|
| volume_view_->SetVolumeLevel(percent);
|
| SetDetailedViewCloseDelay(kTrayPopupAutoCloseDelayInSeconds);
|
| return;
|
|
|