aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libempathy-gtk/empathy-chat.c16
-rw-r--r--src/empathy-main-window.c15
-rw-r--r--src/empathy-new-chatroom-dialog.c25
3 files changed, 33 insertions, 23 deletions
diff --git a/libempathy-gtk/empathy-chat.c b/libempathy-gtk/empathy-chat.c
index 9de2c79f6..48aa793d5 100644
--- a/libempathy-gtk/empathy-chat.c
+++ b/libempathy-gtk/empathy-chat.c
@@ -179,13 +179,17 @@ chat_status_changed_cb (MissionControl *mc,
if (status == TP_CONNECTION_STATUS_CONNECTED && !priv->tp_chat &&
empathy_account_equal (account, priv->account) &&
priv->handle_type != TP_HANDLE_TYPE_NONE) {
+ TpConnection *connection;
+
DEBUG ("Account reconnected, request a new Text channel");
- mission_control_request_channel_with_string_handle (mc,
- priv->account,
- TP_IFACE_CHANNEL_TYPE_TEXT,
- priv->id,
- priv->handle_type,
- NULL, NULL);
+ connection = mission_control_get_tpconnection (mc, account, NULL);
+ tp_connection_run_until_ready (connection, FALSE, NULL, NULL);
+ empathy_connection_request_channel (connection, -1,
+ TP_IFACE_CHANNEL_TYPE_TEXT,
+ priv->handle_type,
+ priv->id, TRUE,
+ NULL, NULL, NULL, NULL);
+ g_object_unref (connection);
}
g_object_unref (account);
diff --git a/src/empathy-main-window.c b/src/empathy-main-window.c
index dbba3b46b..e41b3f11e 100644
--- a/src/empathy-main-window.c
+++ b/src/empathy-main-window.c
@@ -722,6 +722,7 @@ main_window_favorite_chatroom_join (EmpathyChatroom *chatroom)
{
MissionControl *mc;
McAccount *account;
+ TpConnection *connection;
const gchar *room;
mc = empathy_mission_control_new ();
@@ -730,12 +731,14 @@ main_window_favorite_chatroom_join (EmpathyChatroom *chatroom)
DEBUG ("Requesting channel for '%s'", room);
- mission_control_request_channel_with_string_handle (mc,
- account,
- TP_IFACE_CHANNEL_TYPE_TEXT,
- room,
- TP_HANDLE_TYPE_ROOM,
- NULL, NULL);
+ connection = mission_control_get_tpconnection (mc, account, NULL);
+ tp_connection_run_until_ready (connection, TRUE, NULL, NULL);
+ empathy_connection_request_channel (connection, -1,
+ TP_IFACE_CHANNEL_TYPE_TEXT,
+ TP_HANDLE_TYPE_ROOM,
+ room, TRUE,
+ NULL, NULL, NULL, NULL);
+ g_object_unref (connection);
g_object_unref (mc);
}
diff --git a/src/empathy-new-chatroom-dialog.c b/src/empathy-new-chatroom-dialog.c
index 35a9c327e..4a1fb90df 100644
--- a/src/empathy-new-chatroom-dialog.c
+++ b/src/empathy-new-chatroom-dialog.c
@@ -487,12 +487,13 @@ new_chatroom_dialog_model_selection_changed (GtkTreeSelection *selection
static void
new_chatroom_dialog_join (EmpathyNewChatroomDialog *dialog)
{
- McAccount *account;
EmpathyAccountChooser *account_chooser;
- MissionControl *mc;
- const gchar *room;
- const gchar *server = NULL;
- gchar *room_name = NULL;
+ McAccount *account;
+ MissionControl *mc;
+ TpConnection *connection;
+ const gchar *room;
+ const gchar *server = NULL;
+ gchar *room_name = NULL;
room = gtk_entry_get_text (GTK_ENTRY (dialog->entry_room));
server = gtk_entry_get_text (GTK_ENTRY (dialog->entry_server));
@@ -509,13 +510,15 @@ new_chatroom_dialog_join (EmpathyNewChatroomDialog *dialog)
DEBUG ("Requesting channel for '%s'", room_name);
mc = empathy_mission_control_new ();
- mission_control_request_channel_with_string_handle (mc,
- account,
- TP_IFACE_CHANNEL_TYPE_TEXT,
- room_name,
- TP_HANDLE_TYPE_ROOM,
- NULL, NULL);
+ connection = mission_control_get_tpconnection (mc, account, NULL);
+ tp_connection_run_until_ready (connection, TRUE, NULL, NULL);
+ empathy_connection_request_channel (connection, -1,
+ TP_IFACE_CHANNEL_TYPE_TEXT,
+ TP_HANDLE_TYPE_ROOM,
+ room_name, TRUE,
+ NULL, NULL, NULL, NULL);
g_free (room_name);
+ g_object_unref (connection);
g_object_unref (mc);
}