From 22fa7f1292922621ab6099019f810c2b0a621c99 Mon Sep 17 00:00:00 2001 From: Rui Matos Date: Mon, 20 Oct 2014 15:48:40 +0200 Subject: [PATCH] sound: Fix the main volume bars to correctly display changes in volume The active input and output streams aren't added through add_stream() so they weren't being mapped to their respective volume bars, resulting in updates to the volume through other means not being reflected in our UI. Moving the mapping to bar_set_stream() which is called for every stream fixes the problem. Also, there's no value in having a helper function to do a g_hash_table_insert() and not doing the same for the respective g_hash_table_remove()s so remove it. https://bugzilla.gnome.org/show_bug.cgi?id=738869 --- panels/sound/gvc-mixer-dialog.c | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/panels/sound/gvc-mixer-dialog.c b/panels/sound/gvc-mixer-dialog.c index 3cb59d837..a576dd29a 100644 --- a/panels/sound/gvc-mixer-dialog.c +++ b/panels/sound/gvc-mixer-dialog.c @@ -755,16 +755,6 @@ on_stream_is_muted_notify (GObject *object, } -static void -save_bar_for_stream (GvcMixerDialog *dialog, - GvcMixerStream *stream, - GtkWidget *bar) -{ - g_hash_table_insert (dialog->priv->bars, - GUINT_TO_POINTER (gvc_mixer_stream_get_id (stream)), - bar); -} - static GtkWidget * create_bar (GvcMixerDialog *dialog, gboolean add_to_size_group, @@ -990,6 +980,9 @@ bar_set_stream (GvcMixerDialog *dialog, "value-changed", G_CALLBACK (on_adjustment_value_changed), dialog); + g_hash_table_insert (dialog->priv->bars, + GUINT_TO_POINTER (gvc_mixer_stream_get_id (stream)), + bar); } } @@ -1037,7 +1030,6 @@ add_stream (GvcMixerDialog *dialog, g_signal_handlers_disconnect_by_func (old_stream, on_stream_volume_notify, dialog); g_hash_table_remove (dialog->priv->bars, GUINT_TO_POINTER (gvc_mixer_stream_get_id (old_stream))); } - save_bar_for_stream (dialog, stream, bar); bar_set_stream (dialog, bar, stream); gtk_widget_show (bar); }