diff options
Diffstat (limited to 'program/steps/mail/getunread.inc')
-rw-r--r-- | program/steps/mail/getunread.inc | 48 |
1 files changed, 28 insertions, 20 deletions
diff --git a/program/steps/mail/getunread.inc b/program/steps/mail/getunread.inc index fda6448d4..3b93e8ef6 100644 --- a/program/steps/mail/getunread.inc +++ b/program/steps/mail/getunread.inc @@ -23,27 +23,35 @@ $a_folders = $RCMAIL->storage->list_folders_subscribed('', '*', 'mail'); if (!empty($a_folders)) { - $current = $RCMAIL->storage->get_folder(); - $inbox = ($current == 'INBOX'); - $check_all = (bool)$RCMAIL->config->get('check_all_folders'); - - foreach ($a_folders as $mbox_row) { - $unseen_old = rcmail_get_unseen_count($mbox_row); - - if (!$check_all && $unseen_old !== null && $mbox_row != $current) - $unseen = $unseen_old; - else - $unseen = $RCMAIL->storage->count($mbox_row, 'UNSEEN', $unseen_old === null); - - // call it always for current folder, so it can update counter - // after possible message status change when opening a message - // not in preview frame - if ($unseen || $unseen_old === null || $mbox_row == $current) { - $OUTPUT->command('set_unread_count', $mbox_row, $unseen, $inbox && $mbox_row == 'INBOX'); + $current = $RCMAIL->storage->get_folder(); + $inbox = ($current == 'INBOX'); + $trash = $RCMAIL->config->get('trash_mbox'); + $check_all = (bool)$RCMAIL->config->get('check_all_folders'); + + foreach ($a_folders as $mbox) { + $unseen_old = rcmail_get_unseen_count($mbox); + + if (!$check_all && $unseen_old !== null && $mbox != $current) { + $unseen = $unseen_old; + } + else { + $unseen = $RCMAIL->storage->count($mbox, 'UNSEEN', $unseen_old === null); + } + + // call it always for current folder, so it can update counter + // after possible message status change when opening a message + // not in preview frame + if ($unseen || $unseen_old === null || $mbox == $current) { + $OUTPUT->command('set_unread_count', $mbox, $unseen, $inbox && $mbox_row == 'INBOX'); + } + + rcmail_set_unseen_count($mbox, $unseen); + + // set trash folder state + if ($mbox === $trash) { + $OUTPUT->command('set_trash_count', $RCMAIL->storage->count($mbox, 'EXISTS')); + } } - - rcmail_set_unseen_count($mbox_row, $unseen); - } } $OUTPUT->send(); |