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
This commit is contained in:
Rui Matos 2014-10-20 15:48:40 +02:00
parent 1635cd5be9
commit 22fa7f1292

View file

@ -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);
}