aboutsummaryrefslogtreecommitdiffstats
path: root/libempathy
diff options
context:
space:
mode:
Diffstat (limited to 'libempathy')
-rw-r--r--libempathy/empathy-tp-chat.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/libempathy/empathy-tp-chat.c b/libempathy/empathy-tp-chat.c
index a8b0eeb6f..28b97076d 100644
--- a/libempathy/empathy-tp-chat.c
+++ b/libempathy/empathy-tp-chat.c
@@ -1251,10 +1251,19 @@ const gchar *
empathy_tp_chat_get_id (EmpathyTpChat *chat)
{
EmpathyTpChatPriv *priv = GET_PRIV (chat);
+ const gchar *id;
+
g_return_val_if_fail (EMPATHY_IS_TP_CHAT (chat), NULL);
- return tp_channel_get_identifier (priv->channel);
+ id = tp_channel_get_identifier (priv->channel);
+ if (!EMP_STR_EMPTY (id))
+ return id;
+ else if (priv->remote_contact)
+ return empathy_contact_get_id (priv->remote_contact);
+ else
+ return NULL;
+
}
EmpathyContact *