aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Uebernickel <lars.uebernickel@canonical.com>2014-10-16 15:07:51 +0200
committerLars Uebernickel <lars.uebernickel@canonical.com>2014-10-16 15:07:51 +0200
commit16a72ae6f4c18c621e16e259bc9122cdaf39eb6b (patch)
treeaeec93c76d9373772583f9360557b5e0f951dadf
parentea570316012b87f04d1de7aff11d2bebff670b97 (diff)
downloadayatana-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.vala3
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;