aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>2011-04-15 18:21:52 +0800
committerDanielle Madeley <danielle.madeley@collabora.co.uk>2011-04-21 10:25:25 +0800
commitb7013f41997500ed888fb3b40f3c11a5502079cd (patch)
tree53c05d40c820dfb5fe8138f8648250da47396eef
parentfd96433c558ca24e8db7397b69cbd600caa6b793 (diff)
downloadgsoc2013-empathy-b7013f41997500ed888fb3b40f3c11a5502079cd.tar
gsoc2013-empathy-b7013f41997500ed888fb3b40f3c11a5502079cd.tar.gz
gsoc2013-empathy-b7013f41997500ed888fb3b40f3c11a5502079cd.tar.bz2
gsoc2013-empathy-b7013f41997500ed888fb3b40f3c11a5502079cd.tar.lz
gsoc2013-empathy-b7013f41997500ed888fb3b40f3c11a5502079cd.tar.xz
gsoc2013-empathy-b7013f41997500ed888fb3b40f3c11a5502079cd.tar.zst
gsoc2013-empathy-b7013f41997500ed888fb3b40f3c11a5502079cd.zip
empathy-tp-chat: ensure that we get a TpTextChannel
-rw-r--r--libempathy/empathy-tp-chat.c2
-rw-r--r--src/empathy-chat-manager.c10
-rw-r--r--src/empathy-event-manager.c2
3 files changed, 12 insertions, 2 deletions
diff --git a/libempathy/empathy-tp-chat.c b/libempathy/empathy-tp-chat.c
index da3ac663a..6b6dfebe5 100644
--- a/libempathy/empathy-tp-chat.c
+++ b/libempathy/empathy-tp-chat.c
@@ -1618,7 +1618,7 @@ empathy_tp_chat_new (TpAccount *account,
TpChannel *channel)
{
g_return_val_if_fail (TP_IS_ACCOUNT (account), NULL);
- g_return_val_if_fail (TP_IS_CHANNEL (channel), NULL);
+ g_return_val_if_fail (TP_IS_TEXT_CHANNEL (channel), NULL);
return g_object_new (EMPATHY_TYPE_TP_CHAT,
"account", account,
diff --git a/src/empathy-chat-manager.c b/src/empathy-chat-manager.c
index 4ff6b7d30..8455001f5 100644
--- a/src/empathy-chat-manager.c
+++ b/src/empathy-chat-manager.c
@@ -216,6 +216,16 @@ handle_channels (TpSimpleHandler *handler,
TpChannel *channel = l->data;
EmpathyTpChat *tp_chat;
+ if (tp_proxy_get_invalidated (channel) != NULL)
+ continue;
+
+ if (!TP_IS_TEXT_CHANNEL (channel))
+ {
+ DEBUG ("Channel %s doesn't implement Messages; can't handle it",
+ tp_proxy_get_object_path (channel));
+ continue;
+ }
+
tp_chat = empathy_tp_chat_new (account, channel);
if (empathy_tp_chat_is_ready (tp_chat))
diff --git a/src/empathy-event-manager.c b/src/empathy-event-manager.c
index 041d22a18..e2ce0725f 100644
--- a/src/empathy-event-manager.c
+++ b/src/empathy-event-manager.c
@@ -1037,7 +1037,7 @@ approve_channels (TpSimpleApprover *approver,
channel_type = tp_channel_get_channel_type_id (channel);
- if (channel_type == TP_IFACE_QUARK_CHANNEL_TYPE_TEXT)
+ if (TP_IS_TEXT_CHANNEL (channel))
{
EmpathyTpChat *tp_chat;