From a6a3c811cbd2bdd64f6d49702bf1ad2f2fdf027c Mon Sep 17 00:00:00 2001 From: Guillaume Desmottes Date: Wed, 11 Nov 2009 12:15:51 +0000 Subject: tp_chat_check_if_ready: deal with password protected room The TpChat is not ready if we are fetching the password flags. But once it's fetched, the chat is ready if it's protected as we won't be able to get the members of the room. --- libempathy/empathy-tp-chat.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/libempathy/empathy-tp-chat.c b/libempathy/empathy-tp-chat.c index 73c446a7d..aea125469 100644 --- a/libempathy/empathy-tp-chat.c +++ b/libempathy/empathy-tp-chat.c @@ -787,8 +787,14 @@ tp_chat_check_if_ready (EmpathyTpChat *chat) if (priv->user == NULL) return; - /* We need either the members (room) or the remote contact (private chat) */ - if (priv->members == NULL && priv->remote_contact == NULL) + if (!priv->got_password_flags) + return; + + /* We need either the members (room) or the remote contact (private chat). + * If the chat is protected by a password we can't get these information so + * consider the chat as ready so it can be presented to the user. */ + if (!empathy_tp_chat_password_needed (chat) && priv->members == NULL && + priv->remote_contact == NULL) return; DEBUG ("Ready!"); @@ -1051,6 +1057,8 @@ got_password_flags_cb (TpChannel *proxy, priv->got_password_flags = TRUE; priv->password_flags = password_flags; + + tp_chat_check_if_ready (EMPATHY_TP_CHAT (self)); } static GObject * -- cgit v1.2.3