[telepathy-salut/master] tubes-channel: always fire the Closed signal when a tube is closed

Guillaume Desmottes guillaume.desmottes at collabora.co.uk
Fri Jun 26 07:28:11 PDT 2009


---
 src/salut-tubes-channel.c |   31 ++++++++++++-------------------
 1 files changed, 12 insertions(+), 19 deletions(-)

diff --git a/src/salut-tubes-channel.c b/src/salut-tubes-channel.c
index 68a3264..6f76b74 100644
--- a/src/salut-tubes-channel.c
+++ b/src/salut-tubes-channel.c
@@ -1194,6 +1194,7 @@ tube_closed_cb (SalutTubeIface *tube,
   SalutTubesChannel *self = SALUT_TUBES_CHANNEL (user_data);
   SalutTubesChannelPrivate *priv = SALUT_TUBES_CHANNEL_GET_PRIVATE (self);
   guint tube_id;
+  TpChannelManager *mgr;
 
   if (priv->closed)
     return;
@@ -1215,29 +1216,21 @@ tube_closed_cb (SalutTubeIface *tube,
   update_tubes_info (self);
 
   tp_svc_channel_type_tubes_emit_tube_closed (self, tube_id);
+  tp_svc_channel_emit_closed (tube);
 
-  /* FIXME: this is a workaround while new tube API is not implemented on
-   * D-Bus tubes */
-  if (SALUT_IS_TUBE_STREAM (tube))
+  if (priv->handle_type == TP_HANDLE_TYPE_CONTACT)
     {
-      TpChannelManager *mgr;
-
-      tp_svc_channel_emit_closed (tube);
-
-      if (priv->handle_type == TP_HANDLE_TYPE_CONTACT)
-        {
-          g_object_get (priv->conn, "tubes-manager", &mgr, NULL);
-        }
-      else
-        {
-          g_object_get (priv->conn, "muc-manager", &mgr, NULL);
-        }
+      g_object_get (priv->conn, "tubes-manager", &mgr, NULL);
+    }
+  else
+    {
+      g_object_get (priv->conn, "muc-manager", &mgr, NULL);
+    }
 
-      tp_channel_manager_emit_channel_closed_for_object (mgr,
-          TP_EXPORTABLE_CHANNEL (tube));
+  tp_channel_manager_emit_channel_closed_for_object (mgr,
+      TP_EXPORTABLE_CHANNEL (tube));
 
-      g_object_unref (mgr);
-    }
+  g_object_unref (mgr);
 }
 
 static void
-- 
1.5.6.5




More information about the telepathy-commits mailing list