diff options
author | Sjoerd Simons <sjoerd.simons@collabora.co.uk> | 2011-03-17 19:41:25 +0800 |
---|---|---|
committer | Emilio Pozuelo Monfort <emilio.pozuelo@collabora.co.uk> | 2011-06-09 17:20:07 +0800 |
commit | f2716880b947f4c47a33f1f9347e0454d3b48d4e (patch) | |
tree | 0b9939da64338ec5127a559d047643d090a91a42 /src | |
parent | 2ca45f96fa9f54295cd0416842192cf6e7be671d (diff) | |
download | gsoc2013-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
Diffstat (limited to 'src')
-rw-r--r-- | 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 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 |