diff --git a/src/App.vala b/src/App.vala index 03750139..8319065c 100644 --- a/src/App.vala +++ b/src/App.vala @@ -6,6 +6,8 @@ */ public class Sound.App : Object { + public signal void changed (); + public uint32 index { get; private set; } public string name { get; private set; } public string display_name { get; private set; } diff --git a/src/AppRow.vala b/src/AppRow.vala index 433b1c88..85779229 100644 --- a/src/AppRow.vala +++ b/src/AppRow.vala @@ -109,14 +109,12 @@ public class Sound.AppRow : Gtk.Grid { app_name_label.label = app.display_name; image.set_from_gicon (app.icon, Gtk.IconSize.DND); - app.notify["volume"].connect (update); - app.notify["muted"].connect (update); + app.changed.connect (update); volume_scale.set_value (app.volume); } public void unbind_app () { - app.notify["volume"].disconnect (update); - app.notify["muted"].disconnect (update); + app.changed.disconnect (update); } } diff --git a/src/PulseAudioManager.vala b/src/PulseAudioManager.vala index 3e946c2b..39f394ab 100644 --- a/src/PulseAudioManager.vala +++ b/src/PulseAudioManager.vala @@ -628,6 +628,8 @@ public class Sound.PulseAudioManager : GLib.Object { if (app.volume != volume) { app.volume = volume; } + + app.changed (); } private void card_info_callback (PulseAudio.Context c, PulseAudio.CardInfo? card, int eol) {