[empathy] tp_chat_check_if_ready: deal with password protected room



commit a6a3c811cbd2bdd64f6d49702bf1ad2f2fdf027c
Author: Guillaume Desmottes <guillaume desmottes collabora co uk>
Date:   Wed Nov 11 12:15:51 2009 +0000

    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 files changed, 10 insertions(+), 2 deletions(-)
---
diff --git a/libempathy/empathy-tp-chat.c b/libempathy/empathy-tp-chat.c
index 73c446a..aea1254 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 *



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]