[empathy: 65/99] When the remote side hangs up, clean up the call channel



commit f2716880b947f4c47a33f1f9347e0454d3b48d4e
Author: Sjoerd Simons <sjoerd simons collabora co uk>
Date:   Thu Mar 17 11:41:25 2011 +0000

    When the remote side hangs up, clean up the call channel

 src/empathy-call-handler.c |   11 +++++++++--
 1 files changed, 9 insertions(+), 2 deletions(-)
---
diff --git a/src/empathy-call-handler.c b/src/empathy-call-handler.c
index a7aafad..aff96bd 100644
--- a/src/empathy-call-handler.c
+++ b/src/empathy-call-handler.c
@@ -193,10 +193,17 @@ on_call_state_changed_cb (TpyCallChannel *call,
   GHashTable *call_state_details,
   EmpathyCallHandler *handler)
 {
-  if (state == TPY_CALL_STATE_ENDED)
-    tp_channel_close_async (TP_CHANNEL (call), NULL, NULL);
+  EmpathyCallHandlerPriv *priv = handler->priv;
 
   g_signal_emit (handler, signals[STATE_CHANGED], 0, state);
+
+  if (state == TPY_CALL_STATE_ENDED)
+    {
+      tp_channel_close_async (TP_CHANNEL (call), NULL, NULL);
+
+      tp_clear_object (&priv->call);
+      tp_clear_object (&priv->tfchannel);
+    }
 }
 
 static void



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