aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSjoerd Simons <sjoerd.simons@collabora.co.uk>2011-03-17 19:41:25 +0800
committerEmilio Pozuelo Monfort <emilio.pozuelo@collabora.co.uk>2011-06-09 17:20:07 +0800
commitf2716880b947f4c47a33f1f9347e0454d3b48d4e (patch)
tree0b9939da64338ec5127a559d047643d090a91a42
parent2ca45f96fa9f54295cd0416842192cf6e7be671d (diff)
downloadgsoc2013-empathy-f2716880b947f4c47a33f1f9347e0454d3b48d4e.tar
gsoc2013-empathy-f2716880b947f4c47a33f1f9347e0454d3b48d4e.tar.gz
gsoc2013-empathy-f2716880b947f4c47a33f1f9347e0454d3b48d4e.tar.bz2
gsoc2013-empathy-f2716880b947f4c47a33f1f9347e0454d3b48d4e.tar.lz
gsoc2013-empathy-f2716880b947f4c47a33f1f9347e0454d3b48d4e.tar.xz
gsoc2013-empathy-f2716880b947f4c47a33f1f9347e0454d3b48d4e.tar.zst
gsoc2013-empathy-f2716880b947f4c47a33f1f9347e0454d3b48d4e.zip
When the remote side hangs up, clean up the call channel
-rw-r--r--src/empathy-call-handler.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/empathy-call-handler.c b/src/empathy-call-handler.c
index a7aafad64..aff96bd6e 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