accounts = tp_account_manager_get_valid_accounts (priv->manager);
for (l = accounts; l != NULL; l = l->next) {
- empathy_signal_connect_weak (l->data, "status-changed",
+ tp_g_signal_connect_object (l->data, "status-changed",
G_CALLBACK (account_status_changed_cb),
- G_OBJECT (idle));
+ idle, 0);
}
g_list_free (accounts);
{
EmpathyIdlePriv *priv = G_TYPE_INSTANCE_GET_PRIVATE (idle,
EMPATHY_TYPE_IDLE, EmpathyIdlePriv);
+ TpDBusDaemon *dbus;
idle->priv = priv;
priv->is_idle = FALSE;
"most-available-presence-changed",
G_CALLBACK (idle_presence_changed_cb), idle);
- priv->gs_proxy = dbus_g_proxy_new_for_name (tp_get_bus (),
+ dbus = tp_dbus_daemon_dup (NULL);
+
+ priv->gs_proxy = dbus_g_proxy_new_for_name (
+ tp_proxy_get_dbus_connection (dbus),
"org.gnome.SessionManager",
"/org/gnome/SessionManager/Presence",
"org.gnome.SessionManager.Presence");
DEBUG ("Failed to get gs proxy");
}
+ g_object_unref (dbus);
+
priv->connectivity = empathy_connectivity_dup_singleton ();
priv->state_change_signal_id = g_signal_connect (priv->connectivity,
"state-change", G_CALLBACK (idle_state_change_cb), idle);