From 93978582b8a48175d4721b3d8fddce0d6d55b4fc Mon Sep 17 00:00:00 2001 From: Xavier Claessens Date: Mon, 7 Jul 2008 20:41:45 +0000 Subject: Add some comments to the message queue code svn path=/trunk/; revision=1204 --- libempathy/empathy-tp-chat.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'libempathy') diff --git a/libempathy/empathy-tp-chat.c b/libempathy/empathy-tp-chat.c index 20c9d8f67..534fa5275 100644 --- a/libempathy/empathy-tp-chat.c +++ b/libempathy/empathy-tp-chat.c @@ -292,8 +292,9 @@ tp_chat_sender_ready_notify_cb (EmpathyContact *contact, gboolean removed = FALSE; /* Emit all messages queued until we find a message with not - * ready sender. When leaving this loop, sender is the first not ready - * contact queued and removed tells if at least one message got removed + * ready sender (in case of a MUC we could have more than one sender). + * When leaving this loop, sender is the first not ready contact queued + * and removed tells if at least one message got removed * from the queue. */ while (priv->message_queue) { message = priv->message_queue->data; @@ -314,11 +315,15 @@ tp_chat_sender_ready_notify_cb (EmpathyContact *contact, } if (removed) { + /* We removed at least one message from the queue, disconnect + * the ready signal from the previous contact */ g_signal_handlers_disconnect_by_func (contact, tp_chat_sender_ready_notify_cb, chat); if (priv->message_queue) { + /* We still have queued message, connect the ready + * signal on the new first message sender. */ g_signal_connect (sender, "notify::ready", G_CALLBACK (tp_chat_sender_ready_notify_cb), chat); -- cgit v1.2.3