Author: jannis
Date: 2008-06-22 13:35:51 +0000 (Sun, 22 Jun 2008)
New Revision: 27134

Modified:
   xfce4-mixer/trunk/ChangeLog
   xfce4-mixer/trunk/panel-plugin/xfce-mixer-plugin.c
Log:
        * panel-plugin/xfce-mixer-plugin.c: Ignore GstBus messages
          while applying changes to the active card/track to avoid
          conflicting states.


Modified: xfce4-mixer/trunk/ChangeLog
===================================================================
--- xfce4-mixer/trunk/ChangeLog 2008-06-22 13:27:43 UTC (rev 27133)
+++ xfce4-mixer/trunk/ChangeLog 2008-06-22 13:35:51 UTC (rev 27134)
@@ -1,5 +1,11 @@
 2008-06-22     Jannis Pohlmann <[EMAIL PROTECTED]>
 
+       * panel-plugin/xfce-mixer-plugin.c: Ignore GstBus messages
+         while applying changes to the active card/track to avoid
+         conflicting states.
+
+2008-06-22     Jannis Pohlmann <[EMAIL PROTECTED]>
+
        * icons/: Revamp icons yet again.
 
 2008-06-22     Jannis Pohlmann <[EMAIL PROTECTED]>

Modified: xfce4-mixer/trunk/panel-plugin/xfce-mixer-plugin.c
===================================================================
--- xfce4-mixer/trunk/panel-plugin/xfce-mixer-plugin.c  2008-06-22 13:27:43 UTC 
(rev 27133)
+++ xfce4-mixer/trunk/panel-plugin/xfce-mixer-plugin.c  2008-06-22 13:35:51 UTC 
(rev 27134)
@@ -58,6 +58,8 @@
 
   GtkWidget       *hvbox;
   GtkWidget       *button;
+
+  gboolean         ignore_bus_messages;
 };
 
 
@@ -108,6 +110,7 @@
 
   mixer_plugin->card = NULL;
   mixer_plugin->track = NULL;
+  mixer_plugin->ignore_bus_messages = FALSE;
 
   mixer_plugin->tooltips = gtk_tooltips_new ();
   gtk_tooltips_set_delay (mixer_plugin->tooltips, 10);
@@ -217,6 +220,8 @@
   g_return_if_fail (IS_XFCE_MIXER_CARD (mixer_plugin->card));
   g_return_if_fail (GST_IS_MIXER_TRACK (mixer_plugin->track));
 
+  mixer_plugin->ignore_bus_messages = TRUE;
+
   /* Set tooltip (e.g. 'Master: 50%') */
   tip_text = g_strdup_printf (_("%s: %i%%"), GST_MIXER_TRACK 
(mixer_plugin->track)->label, (gint) (volume * 100));
   gtk_tooltips_set_tip (mixer_plugin->tooltips, mixer_plugin->button, 
tip_text, "test");
@@ -233,6 +238,8 @@
   xfce_mixer_card_set_track_volume (mixer_plugin->card, mixer_plugin->track, 
volumes);
 
   g_free (volumes);
+
+  mixer_plugin->ignore_bus_messages = FALSE;
 }
 
 
@@ -245,7 +252,11 @@
   g_return_if_fail (IS_XFCE_MIXER_CARD (mixer_plugin->card));
   g_return_if_fail (GST_IS_MIXER_TRACK (mixer_plugin->track));
 
+  mixer_plugin->ignore_bus_messages = TRUE;
+
   xfce_mixer_card_set_track_muted (mixer_plugin->card, mixer_plugin->track, 
mute);
+
+  mixer_plugin->ignore_bus_messages = FALSE;
 }
 
 
@@ -442,6 +453,9 @@
   gint                num_channels;
   gboolean            mute;
 
+  if (G_UNLIKELY (mixer_plugin->ignore_bus_messages))
+    return;
+
   if (G_UNLIKELY (!xfce_mixer_card_get_message_owner (mixer_plugin->card, 
message)))
     return TRUE;
 

_______________________________________________
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits

Reply via email to