summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRodrigo Moya <rodrigo@gnome-db.org>2011-04-19 15:59:35 +0200
committerRodrigo Moya <rodrigo@gnome-db.org>2011-04-19 15:59:35 +0200
commitc9a6a27aa766b31d9f32d182b1de5886793e906b (patch)
treeee301c3329443659464d2072b3ee53f93cf709e6
parentf62a462679cc00fc5d9598d3a81f16229ad87084 (diff)
downloadgnome-settings-daemon-c9a6a27aa766b31d9f32d182b1de5886793e906b.tar.gz
media-keys: React to stream-removed signal from GvcMixerControl
-rw-r--r--plugins/media-keys/gsd-media-keys-manager.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/plugins/media-keys/gsd-media-keys-manager.c b/plugins/media-keys/gsd-media-keys-manager.c
index b563f73a..1f180745 100644
--- a/plugins/media-keys/gsd-media-keys-manager.c
+++ b/plugins/media-keys/gsd-media-keys-manager.c
@@ -794,6 +794,19 @@ on_control_default_sink_changed (GvcMixerControl *control,
update_default_sink (manager);
}
+static void
+on_control_stream_removed (GvcMixerControl *control,
+ guint id,
+ GsdMediaKeysManager *manager)
+{
+ if (manager->priv->stream != NULL) {
+ if (gvc_mixer_stream_get_id (manager->priv->stream) == id) {
+ g_object_unref (manager->priv->stream);
+ manager->priv->stream = NULL;
+ }
+ }
+}
+
#endif /* HAVE_PULSE */
static gint
@@ -1118,6 +1131,10 @@ gsd_media_keys_manager_start (GsdMediaKeysManager *manager,
"default-sink-changed",
G_CALLBACK (on_control_default_sink_changed),
manager);
+ g_signal_connect (manager->priv->volume,
+ "stream-removed",
+ G_CALLBACK (on_control_stream_removed),
+ manager);
gvc_mixer_control_open (manager->priv->volume);