From 3536577bcbc908dbfd26d8b74696ce3da30bf48b Mon Sep 17 00:00:00 2001 From: alecpl <alec@alec.pl> Date: Mon, 13 Jul 2009 07:22:28 -0400 Subject: [PATCH] - improve responsiveness by flushing template output asap, also set the \Seen flag after message page display --- program/steps/mail/show.inc | 32 +++++++++++++++++++------------- 1 files changed, 19 insertions(+), 13 deletions(-) diff --git a/program/steps/mail/show.inc b/program/steps/mail/show.inc index 423b933..a644a94 100644 --- a/program/steps/mail/show.inc +++ b/program/steps/mail/show.inc @@ -25,10 +25,6 @@ if ($_GET['_uid']) { $MESSAGE = new rcube_message(get_input_value('_uid', RCUBE_INPUT_GET)); - // set message charset as default - if (!empty($MESSAGE->headers->charset)) - $IMAP->set_charset($MESSAGE->headers->charset); - // if message not found (wrong UID)... if (empty($MESSAGE->headers)) { $OUTPUT->show_message('messageopenerror', 'error'); @@ -43,7 +39,7 @@ return; } } - + $mbox_name = $IMAP->get_mailbox_name(); // show images? @@ -64,6 +60,10 @@ send_nocacheing_headers(); else if (empty($CONFIG['devel_mode'])) send_modified_header($_SESSION['login_time'], $etag, !$MESSAGE->headers->seen); + + // set message charset as default + if (!empty($MESSAGE->headers->charset)) + $IMAP->set_charset($MESSAGE->headers->charset); $OUTPUT->set_pagetitle($MESSAGE->subject); @@ -143,11 +143,9 @@ $OUTPUT->set_env('last_uid', $last); } - // mark message as read - if (!$MESSAGE->headers->seen) { - $IMAP->set_flag($MESSAGE->uid, 'SEEN'); - $RCMAIL->plugins->exec_hook('message_read', array('uid' => $MESSAGE->uid, 'mailbox' => $IMAP->mailbox, 'message' => $MESSAGE)); - } + if (!$MESSAGE->headers->seen) + $RCMAIL->plugins->exec_hook('message_read', array('uid' => $MESSAGE->uid, + 'mailbox' => $IMAP->mailbox, 'message' => $MESSAGE)); } @@ -223,9 +221,17 @@ if ($RCMAIL->action=='print' && $OUTPUT->template_exists('printmessage')) - $OUTPUT->send('printmessage'); + $OUTPUT->send('printmessage', false); else if ($RCMAIL->action=='preview' && $OUTPUT->template_exists('messagepreview')) - $OUTPUT->send('messagepreview'); + $OUTPUT->send('messagepreview', false); else - $OUTPUT->send('message'); + $OUTPUT->send('message', false); + + +// mark message as read +if ($MESSAGE && $MESSAGE->headers && !$MESSAGE->headers->seen) + $IMAP->set_flag($MESSAGE->uid, 'SEEN'); + +exit; + ?> -- Gitblit v1.9.1