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:
parent
1635cd5be9
commit
22fa7f1292
1 changed files with 3 additions and 11 deletions
|
@ -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 *
|
static GtkWidget *
|
||||||
create_bar (GvcMixerDialog *dialog,
|
create_bar (GvcMixerDialog *dialog,
|
||||||
gboolean add_to_size_group,
|
gboolean add_to_size_group,
|
||||||
|
@ -990,6 +980,9 @@ bar_set_stream (GvcMixerDialog *dialog,
|
||||||
"value-changed",
|
"value-changed",
|
||||||
G_CALLBACK (on_adjustment_value_changed),
|
G_CALLBACK (on_adjustment_value_changed),
|
||||||
dialog);
|
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_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)));
|
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);
|
bar_set_stream (dialog, bar, stream);
|
||||||
gtk_widget_show (bar);
|
gtk_widget_show (bar);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue