diff options
author | Xavi Garcia Mena <xavi.garcia.mena@canonical.com> | 2016-04-18 09:18:14 +0000 |
---|---|---|
committer | CI Train Bot <ci-train-bot@canonical.com> | 2016-04-18 09:18:14 +0000 |
commit | 6ac65d0880f1e3ac377364da4b930a4ec58b940b (patch) | |
tree | 0c88c16f4ea26e2303648537212fb7e8a440f8f6 | |
parent | 10537be76c7675bf7ade87a62f6be01b5beb3b2f (diff) | |
parent | cae62db5c6ad966fbc68f892c9723b010bcd774a (diff) | |
download | ayatana-indicator-sound-6ac65d0880f1e3ac377364da4b930a4ec58b940b.tar.gz ayatana-indicator-sound-6ac65d0880f1e3ac377364da4b930a4ec58b940b.tar.bz2 ayatana-indicator-sound-6ac65d0880f1e3ac377364da4b930a4ec58b940b.zip |
This branch adds a new signal in volumeWarning to set the warning level volume after pressing cancel.
We are setting the warning level before pressing cancel, which is alright, but sometimes we have issues with the value set to the accounts service that steps on the warning level. Fixes: #1570779
Approved by: PS Jenkins bot, Charles Kerr
-rw-r--r-- | src/service.vala | 4 | ||||
-rw-r--r-- | src/volume-warning.vala | 10 |
2 files changed, 14 insertions, 0 deletions
diff --git a/src/service.vala b/src/service.vala index 33008a1..74c3fc5 100644 --- a/src/service.vala +++ b/src/service.vala @@ -68,6 +68,10 @@ public class IndicatorSound.Service: Object { update_notification(); }); + this._volume_warning.cancel_pressed.connect( (cancel_volume) => { + volume_control.set_volume_clamp (cancel_volume, VolumeControl.VolumeReasons.USER_KEYPRESS); + }); + this.accounts_service = accounts; /* If we're on the greeter, don't export */ if (this.accounts_service != null) { diff --git a/src/volume-warning.vala b/src/volume-warning.vala index d43d34c..b1cc518 100644 --- a/src/volume-warning.vala +++ b/src/volume-warning.vala @@ -213,8 +213,18 @@ public abstract class VolumeWarning : Object if (response == IndicatorSound.WarnNotification.Response.OK) { approve_high_volume (); sound_system_set_multimedia_volume (_ok_volume); + } else { + this.cancel_pressed (this.volume_to_double(_options.loud_volume)); } _ok_volume = PulseAudio.Volume.INVALID; } + + private static double volume_to_double (PulseAudio.Volume vol) + { + double tmp = (double)(vol - PulseAudio.Volume.MUTED); + return tmp / (double)(PulseAudio.Volume.NORM - PulseAudio.Volume.MUTED); + } + + public signal void cancel_pressed (double cancel_volume); } |