summaryrefslogtreecommitdiff
path: root/program/include/rcube_imap.inc
diff options
context:
space:
mode:
Diffstat (limited to 'program/include/rcube_imap.inc')
-rw-r--r--program/include/rcube_imap.inc9
1 files changed, 9 insertions, 0 deletions
diff --git a/program/include/rcube_imap.inc b/program/include/rcube_imap.inc
index 8253442ab..44ef24830 100644
--- a/program/include/rcube_imap.inc
+++ b/program/include/rcube_imap.inc
@@ -464,6 +464,7 @@ class rcube_imap
// sort headers by a specific col
$a_headers = iil_SortHeaders($a_msg_headers, $sort_field, $sort_order);
+ $headers_count = count($a_headers);
// free memory
unset($a_msg_headers);
@@ -471,6 +472,14 @@ class rcube_imap
// write headers list to cache
if (!$headers_cached)
$this->update_cache($mailbox.'.msg', $a_headers);
+
+ // update message count cache
+ $a_mailbox_cache = $this->get_cache('messagecount');
+ if (isset($a_mailbox_cache[$mailbox]['ALL']) && $a_mailbox_cache[$mailbox]['ALL'] != $headers_count)
+ {
+ $a_mailbox_cache[$mailbox]['ALL'] = (int)$headers_count;
+ $this->update_cache('messagecount', $a_mailbox_cache);
+ }
if (empty($a_headers))
return array();