diff options
author | Xavier Claessens <xclaesse@gmail.com> | 2007-11-28 23:55:59 +0800 |
---|---|---|
committer | Xavier Claessens <xclaesse@src.gnome.org> | 2007-11-28 23:55:59 +0800 |
commit | c289dc18ce15e60e94e82d9df9fec9dfce8ef7d4 (patch) | |
tree | 2dc3baad28a6e3f8b13e860fac630f5951d7cb0d | |
parent | 5a7f6b6dcefaad2accff9bbe2d1c992788798c79 (diff) | |
download | gsoc2013-empathy-c289dc18ce15e60e94e82d9df9fec9dfce8ef7d4.tar.gz gsoc2013-empathy-c289dc18ce15e60e94e82d9df9fec9dfce8ef7d4.tar.zst gsoc2013-empathy-c289dc18ce15e60e94e82d9df9fec9dfce8ef7d4.zip |
Request new Text Channel if the contact is online again and CM don't
2007-11-28 Xavier Claessens <xclaesse@gmail.com>
* libempathy-gtk/empathy-private-chat.c: Request new Text Channel if
the contact is online again and CM don't support offline message.
svn path=/trunk/; revision=450
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | libempathy-gtk/empathy-private-chat.c | 20 |
2 files changed, 24 insertions, 1 deletions
@@ -1,3 +1,8 @@ +2007-11-28 Xavier Claessens <xclaesse@gmail.com> + + * libempathy-gtk/empathy-private-chat.c: Request new Text Channel if + the contact is online again and CM don't support offline message. + 2007-11-22 Xavier Claessens <xclaesse@gmail.com> * libempathy-gtk/empathy-group-chat.c: use ":" instead of "," for nick diff --git a/libempathy-gtk/empathy-private-chat.c b/libempathy-gtk/empathy-private-chat.c index 30f46ad8b..81b804d05 100644 --- a/libempathy-gtk/empathy-private-chat.c +++ b/libempathy-gtk/empathy-private-chat.c @@ -33,10 +33,13 @@ #include <glade/glade.h> #include <glib/gi18n.h> +#include <libmissioncontrol/mission-control.h> + #include <libempathy/empathy-debug.h> #include <libempathy/empathy-tp-chat.h> #include <libempathy/empathy-tp-contact-list.h> #include <libempathy/empathy-contact-factory.h> +#include <libempathy/empathy-utils.h> #include "empathy-private-chat.h" #include "empathy-chat-view.h" @@ -171,7 +174,7 @@ private_chat_create_ui (EmpathyPrivateChat *chat) static void private_chat_contact_presence_updated_cb (EmpathyContact *contact, - GParamSpec *param, + GParamSpec *param, EmpathyPrivateChat *chat) { EmpathyPrivateChatPriv *priv; @@ -206,6 +209,21 @@ private_chat_contact_presence_updated_cb (EmpathyContact *contact, } priv->is_online = TRUE; + + /* If offline message is not supported by CM we need to + * request a new Text Channel. */ + if (!empathy_chat_is_connected (EMPATHY_CHAT (chat))) { + MissionControl *mc; + + mc = empathy_mission_control_new (); + mission_control_request_channel (mc, + empathy_contact_get_account (contact), + TP_IFACE_CHANNEL_TYPE_TEXT, + empathy_contact_get_handle (contact), + TP_HANDLE_TYPE_CONTACT, + NULL, NULL); + g_object_unref (mc); + } } g_signal_emit_by_name (chat, "status-changed"); |