diff options
author | Rodrigo Moya <rodrigo@gnome-db.org> | 2011-04-19 15:59:35 +0200 |
---|---|---|
committer | Rodrigo Moya <rodrigo@gnome-db.org> | 2011-04-19 15:59:35 +0200 |
commit | c9a6a27aa766b31d9f32d182b1de5886793e906b (patch) | |
tree | ee301c3329443659464d2072b3ee53f93cf709e6 | |
parent | f62a462679cc00fc5d9598d3a81f16229ad87084 (diff) | |
download | gnome-settings-daemon-c9a6a27aa766b31d9f32d182b1de5886793e906b.tar.gz |
media-keys: React to stream-removed signal from GvcMixerControl
-rw-r--r-- | plugins/media-keys/gsd-media-keys-manager.c | 17 |
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); |