[empathy] CallWindow: fix toggling the microphone on and off



commit 7660dd99c14c92e097eceade559297b8d569e34d
Author: Emilio Pozuelo Monfort <emilio pozuelo collabora co uk>
Date:   Fri Aug 12 14:45:50 2011 +0100

    CallWindow: fix toggling the microphone on and off
    
    We are changing the GSettings key, and also listening to changes
    on it and reacting to them, but we don't want to react to our own
    changes!
    
    https://bugzilla.gnome.org/show_bug.cgi?id=656415

 src/empathy-call-window.c |   12 ++++++++++--
 1 files changed, 10 insertions(+), 2 deletions(-)
---
diff --git a/src/empathy-call-window.c b/src/empathy-call-window.c
index 3398a7b..e2e103c 100644
--- a/src/empathy-call-window.c
+++ b/src/empathy-call-window.c
@@ -2848,13 +2848,18 @@ empathy_call_window_set_send_video (EmpathyCallWindow *window,
 
 static void
 empathy_call_window_mic_toggled_cb (GtkToggleToolButton *toggle,
-  EmpathyCallWindow *window)
+  EmpathyCallWindow *self)
 {
-  EmpathyCallWindowPriv *priv = GET_PRIV (window);
+  EmpathyCallWindowPriv *priv = GET_PRIV (self);
   gboolean active;
 
   active = (gtk_toggle_tool_button_get_active (toggle));
 
+  /* We don't want the settings callback to react to this change to avoid
+   * a loop. */
+  g_signal_handlers_block_by_func (priv->settings,
+      empathy_call_window_prefs_volume_changed_cb, self);
+
   if (active)
     {
       g_settings_set_double (priv->settings, EMPATHY_PREFS_CALL_SOUND_VOLUME,
@@ -2870,6 +2875,9 @@ empathy_call_window_mic_toggled_cb (GtkToggleToolButton *toggle,
       g_settings_set_double (priv->settings, EMPATHY_PREFS_CALL_SOUND_VOLUME,
           0);
     }
+
+    g_signal_handlers_unblock_by_func (priv->settings,
+      empathy_call_window_prefs_volume_changed_cb, self);
 }
 
 static void



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