aboutsummaryrefslogtreecommitdiffstats
path: root/src/empathy.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/empathy.c')
-rw-r--r--src/empathy.c34
1 files changed, 15 insertions, 19 deletions
diff --git a/src/empathy.c b/src/empathy.c
index 9294557ec..e1dab1f18 100644
--- a/src/empathy.c
+++ b/src/empathy.c
@@ -287,6 +287,9 @@ out:
/* Rely on GNOME Shell to watch session state */
empathy_presence_manager_set_auto_away (self->presence_mgr, FALSE);
+
+ empathy_main_window_set_shell_running (EMPATHY_MAIN_WINDOW (self->window),
+ TRUE);
}
else
{
@@ -382,7 +385,7 @@ empathy_app_command_line (GApplication *app,
empathy_window_present (GTK_WINDOW (self->window));
/* Display the accounts dialog if needed */
- tp_account_manager_prepare_async (self->account_manager, NULL,
+ tp_proxy_prepare_async (self->account_manager, NULL,
account_manager_ready_cb, self);
return 0;
@@ -626,7 +629,7 @@ account_manager_ready_cb (GObject *source_object,
GError *error = NULL;
TpConnectionPresenceType presence;
- if (!tp_account_manager_prepare_finish (manager, result, &error))
+ if (!tp_proxy_prepare_finish (manager, result, &error))
{
GtkWidget *dialog;
@@ -672,13 +675,10 @@ account_join_chatrooms (TpAccount *account,
TpConnection *conn;
GList *chatrooms, *p;
- if (tp_account_get_connection_status (account, NULL) !=
- TP_CONNECTION_STATUS_CONNECTED)
- return;
-
- /* If we're connected we should have a connection */
+ /* Wait if we are not connected or the TpConnection is not prepared yet */
conn = tp_account_get_connection (account);
- g_return_if_fail (conn != NULL);
+ if (conn == NULL)
+ return;
chatrooms = empathy_chatroom_manager_get_chatrooms (
chatroom_manager, account);
@@ -697,12 +697,8 @@ account_join_chatrooms (TpAccount *account,
}
static void
-account_status_changed_cb (TpAccount *account,
- guint old_status,
- guint new_status,
- guint reason,
- gchar *dbus_error_name,
- GHashTable *details,
+account_connection_changed_cb (TpAccount *account,
+ GParamSpec *spec,
EmpathyChatroomManager *manager)
{
account_join_chatrooms (account, manager);
@@ -718,7 +714,7 @@ account_manager_chatroom_ready_cb (GObject *source_object,
GList *accounts, *l;
GError *error = NULL;
- if (!tp_account_manager_prepare_finish (account_manager, result, &error))
+ if (!tp_proxy_prepare_finish (account_manager, result, &error))
{
DEBUG ("Failed to prepare account manager: %s", error->message);
g_error_free (error);
@@ -735,8 +731,8 @@ account_manager_chatroom_ready_cb (GObject *source_object,
account_join_chatrooms (account, chatroom_manager);
/* And/or join them on (re)connection */
- tp_g_signal_connect_object (account, "status-changed",
- G_CALLBACK (account_status_changed_cb), chatroom_manager, 0);
+ tp_g_signal_connect_object (account, "notify::connection",
+ G_CALLBACK (account_connection_changed_cb), chatroom_manager, 0);
}
g_list_free (accounts);
}
@@ -748,7 +744,7 @@ chatroom_manager_ready_cb (EmpathyChatroomManager *chatroom_manager,
{
TpAccountManager *account_manager = user_data;
- tp_account_manager_prepare_async (account_manager, NULL,
+ tp_proxy_prepare_async (account_manager, NULL,
account_manager_chatroom_ready_cb, chatroom_manager);
}
@@ -786,7 +782,7 @@ empathy_app_constructed (GObject *object)
/* account management */
self->account_manager = tp_account_manager_dup ();
- tp_account_manager_prepare_async (self->account_manager, NULL,
+ tp_proxy_prepare_async (self->account_manager, NULL,
account_manager_ready_cb, self);
migrate_config_to_xdg_dir ();