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 /libempathy-gtk | |
parent | 5a7f6b6dcefaad2accff9bbe2d1c992788798c79 (diff) | |
download | gsoc2013-empathy-c289dc18ce15e60e94e82d9df9fec9dfce8ef7d4.tar gsoc2013-empathy-c289dc18ce15e60e94e82d9df9fec9dfce8ef7d4.tar.gz gsoc2013-empathy-c289dc18ce15e60e94e82d9df9fec9dfce8ef7d4.tar.bz2 gsoc2013-empathy-c289dc18ce15e60e94e82d9df9fec9dfce8ef7d4.tar.lz gsoc2013-empathy-c289dc18ce15e60e94e82d9df9fec9dfce8ef7d4.tar.xz 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
Diffstat (limited to 'libempathy-gtk')
-rw-r--r-- | libempathy-gtk/empathy-private-chat.c | 20 |
1 files changed, 19 insertions, 1 deletions
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"); |