diff options
author | Ted Gould <ted@gould.cx> | 2015-02-06 08:16:47 -0600 |
---|---|---|
committer | Ted Gould <ted@gould.cx> | 2015-02-06 08:16:47 -0600 |
commit | 9ea7cad48eec56bafb47c7f05f1b04c79c7c3e78 (patch) | |
tree | 1d1e99d047bcd375247456bcd7fad605afae0fce /src/service.vala | |
parent | 6ac4cc8173c25b12cf8c18869f7d1e142c28ad44 (diff) | |
parent | 1b0c78a1bd4237a920a569a64efe6bd006e4a9ca (diff) | |
download | ayatana-indicator-sound-9ea7cad48eec56bafb47c7f05f1b04c79c7c3e78.tar.gz ayatana-indicator-sound-9ea7cad48eec56bafb47c7f05f1b04c79c7c3e78.tar.bz2 ayatana-indicator-sound-9ea7cad48eec56bafb47c7f05f1b04c79c7c3e78.zip |
Update to trunk
Diffstat (limited to 'src/service.vala')
-rw-r--r-- | src/service.vala | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/service.vala b/src/service.vala index fb56215..b07f267 100644 --- a/src/service.vala +++ b/src/service.vala @@ -270,6 +270,8 @@ public class IndicatorSound.Service: Object { private bool check_sync_notification = false; private bool support_sync_notification = false; + private string last_output_notification = "multimedia"; + private double last_volume_notification = 0; void update_sync_notification () { if (!check_sync_notification) { @@ -283,6 +285,21 @@ public class IndicatorSound.Service: Object { if (!support_sync_notification) return; + /* Update our volume and output */ + var oldoutput = this.last_output_notification; + this.last_output_notification = this.volume_control.stream; + + var oldvolume = this.last_volume_notification; + this.last_volume_notification = volume_control.volume; + + /* Suppress notifications of volume changes if it is because the + output stream changed. */ + if (oldoutput != this.last_output_notification) + return; + /* Supress updates that don't change the value */ + if (GLib.Math.fabs(oldvolume - this.last_volume_notification) < 0.01) + return; + var shown_action = actions.lookup_action ("indicator-shown") as SimpleAction; if (shown_action != null && shown_action.get_state().get_boolean()) return; |