diff options
author | Lars Uebernickel <lars.uebernickel@canonical.com> | 2014-10-16 15:07:51 +0200 |
---|---|---|
committer | Lars Uebernickel <lars.uebernickel@canonical.com> | 2014-10-16 15:07:51 +0200 |
commit | 16a72ae6f4c18c621e16e259bc9122cdaf39eb6b (patch) | |
tree | aeec93c76d9373772583f9360557b5e0f951dadf | |
parent | ea570316012b87f04d1de7aff11d2bebff670b97 (diff) | |
download | ayatana-indicator-sound-16a72ae6f4c18c621e16e259bc9122cdaf39eb6b.tar.gz ayatana-indicator-sound-16a72ae6f4c18c621e16e259bc9122cdaf39eb6b.tar.bz2 ayatana-indicator-sound-16a72ae6f4c18c621e16e259bc9122cdaf39eb6b.zip |
service.vala: don't call set_volume unnecessarily
The allow-amplified-volume setting is bound to a property on the service with
the same name. GSettings always sets the target property when the binding is
created. The property setter calls set_volume() unconditionally, which lead to
a call on every startup of indicator-sound. That wasn't a problem until
set_volume() started emitting a notification for volume changes...
Fix this by only updating the property when the underlying value has actually
changed.
-rw-r--r-- | src/service.vala | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/service.vala b/src/service.vala index bd44b0d..0a5725a 100644 --- a/src/service.vala +++ b/src/service.vala @@ -139,6 +139,9 @@ public class IndicatorSound.Service: Object { } set { + if (this.allow_amplified_volume == value) + return; + if (value) { /* from pulse/volume.h: #define PA_VOLUME_UI_MAX (pa_sw_volume_from_dB(+11.0)) */ this.max_volume = (double)PulseAudio.Volume.sw_from_dB(11.0) / PulseAudio.Volume.NORM; |