From 78925f8f1a9afb9475a9cf9ad1b35daade23da85 Mon Sep 17 00:00:00 2001
From: alecpl <alec@alec.pl>
Date: Thu, 17 Sep 2009 08:07:58 -0400
Subject: [PATCH] - Fix incorrect count of new messages in folder list when using multiple IMAP clients (#1485995) - Fix all folders checking for new messages with disabled caching (#1486128)

---
 program/steps/mail/list.inc |   10 +++++++---
 1 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/program/steps/mail/list.inc b/program/steps/mail/list.inc
index 8ba0dd0..a40fce6 100644
--- a/program/steps/mail/list.inc
+++ b/program/steps/mail/list.inc
@@ -60,7 +60,14 @@
 if ($count = $IMAP->messagecount($mbox_name, 'ALL', !empty($_REQUEST['_refresh'])))
   $a_headers = $IMAP->list_headers($mbox_name, NULL, $sort_col, $sort_order);
 
+// count UNSEEN messages...
+$old_unseen = $_SESSION['unseen_count'][$mbox_name];
 $unseen = $count ? $IMAP->messagecount($mbox_name, 'UNSEEN', !empty($_REQUEST['_refresh'])) : 0;
+$_SESSION['unseen_count'][$mbox_name] = $unseen;
+
+// ...and update mailboxlist
+if ($unseen != $old_unseen)
+  $OUTPUT->command('set_unread_count', $mbox_name, $unseen, ($mbox_name == 'INBOX'));
 
 // update message count display
 $pages = ceil($count/$IMAP->page_size);
@@ -80,9 +87,6 @@
   $OUTPUT->show_message('searchnomatch', 'notice');
 else
   $OUTPUT->show_message('nomessagesfound', 'notice');
-  
-// update mailboxlist
-$OUTPUT->command('set_unread_count', $mbox_name, $unseen, ($mbox_name == 'INBOX'));
 
 // send response
 $OUTPUT->send();

--
Gitblit v1.9.1