{
EmpathyTpContactFactoryPriv *priv = GET_PRIV (tp_factory);
TpConn *tp_conn;
+ gboolean connection_ready;
if (priv->connection) {
/* We already have our connection object */
g_signal_connect_swapped (priv->connection, "invalidated",
G_CALLBACK (tp_contact_factory_connection_invalidated_cb),
tp_factory);
- g_signal_connect_swapped (priv->connection, "notify::connection-ready",
- G_CALLBACK (tp_contact_factory_connection_ready_cb),
- tp_factory);
+
+ g_object_get (priv->connection, "connection-ready", &connection_ready, NULL);
+ if (connection_ready) {
+ tp_contact_factory_connection_ready_cb (tp_factory);
+ } else {
+ g_signal_connect_swapped (priv->connection, "notify::connection-ready",
+ G_CALLBACK (tp_contact_factory_connection_ready_cb),
+ tp_factory);
+ }
}
static void
g_list_free (priv->contacts);
g_object_unref (priv->mc);
g_object_unref (priv->account);
+ g_object_unref (priv->user);
if (priv->connection) {
g_object_unref (priv->connection);