diff options
author | Xavier Claessens <xclaesse@src.gnome.org> | 2008-07-08 04:41:45 +0800 |
---|---|---|
committer | Xavier Claessens <xclaesse@src.gnome.org> | 2008-07-08 04:41:45 +0800 |
commit | 93978582b8a48175d4721b3d8fddce0d6d55b4fc (patch) | |
tree | d7ecfb540e5f055baa758e204a31fdea610c0774 /libempathy/empathy-tp-chat.c | |
parent | 6689e15e801f7302d28d4d11cae9bf2f38075da1 (diff) | |
download | gsoc2013-empathy-93978582b8a48175d4721b3d8fddce0d6d55b4fc.tar gsoc2013-empathy-93978582b8a48175d4721b3d8fddce0d6d55b4fc.tar.gz gsoc2013-empathy-93978582b8a48175d4721b3d8fddce0d6d55b4fc.tar.bz2 gsoc2013-empathy-93978582b8a48175d4721b3d8fddce0d6d55b4fc.tar.lz gsoc2013-empathy-93978582b8a48175d4721b3d8fddce0d6d55b4fc.tar.xz gsoc2013-empathy-93978582b8a48175d4721b3d8fddce0d6d55b4fc.tar.zst gsoc2013-empathy-93978582b8a48175d4721b3d8fddce0d6d55b4fc.zip |
Add some comments to the message queue code
svn path=/trunk/; revision=1204
Diffstat (limited to 'libempathy/empathy-tp-chat.c')
-rw-r--r-- | libempathy/empathy-tp-chat.c | 9 |
1 files changed, 7 insertions, 2 deletions
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); |