[gnome-control-center/gnome-3-12] sound: Fix the main volume bars to correctly display changes in volume



commit 7430f41568eacbb73381c1f5618b3223ab748859
Author: Rui Matos <tiagomatos gmail com>
Date:   Mon Oct 20 15:48:40 2014 +0200

    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 files changed, 3 insertions(+), 11 deletions(-)
---
diff --git a/panels/sound/gvc-mixer-dialog.c b/panels/sound/gvc-mixer-dialog.c
index 554d91e..36903f6 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);
         }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]