From 52851464e0267795ffd688e3c769d9161011dba8 Mon Sep 17 00:00:00 2001
From: alecpl <alec@alec.pl>
Date: Thu, 02 Oct 2008 13:48:29 -0400
Subject: [PATCH] - Fix race conditions when changing mailbox (set some env variables only when needed - no action or action==list)

---
 CHANGELOG                   |    1 +
 program/steps/mail/func.inc |   35 ++++++++++++++++++-----------------
 2 files changed, 19 insertions(+), 17 deletions(-)

diff --git a/CHANGELOG b/CHANGELOG
index 49a4454..6144845 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -5,6 +5,7 @@
 ----------
 - Minimize "inline" javascript scripts use (#1485433)
 - Fix css class setting for folders with names matching defined classes names (#1485355)
+- Fix race conditions when changing mailbox
 
 2008/10/01 (alec)
 - Fix spellchecking when switching to html editor (#1485362)
diff --git a/program/steps/mail/func.inc b/program/steps/mail/func.inc
index b6de0b8..f2c4ea4 100644
--- a/program/steps/mail/func.inc
+++ b/program/steps/mail/func.inc
@@ -53,25 +53,26 @@
   $OUTPUT->set_env('search_text', $_SESSION['last_text_search']);
   }
 
-
-// set current mailbox in client environment
-$OUTPUT->set_env('mailbox', $IMAP->get_mailbox_name());
-$OUTPUT->set_env('quota', $IMAP->get_capability('quota'));
-$OUTPUT->set_env('delimiter', $IMAP->get_hierarchy_delimiter());
-
-if ($CONFIG['trash_mbox'])
-  $OUTPUT->set_env('trash_mailbox', $CONFIG['trash_mbox']);
-if ($CONFIG['drafts_mbox'])
-  $OUTPUT->set_env('drafts_mailbox', $CONFIG['drafts_mbox']);
-if ($CONFIG['junk_mbox'])
-  $OUTPUT->set_env('junk_mailbox', $CONFIG['junk_mbox']);
-
-if (!$OUTPUT->ajax_call)
-  rcube_add_label('checkingmail', 'deletemessage', 'movemessagetotrash', 'movingmessage');
-
-// set page title
+// set main env variables, labels and page title
 if (empty($RCMAIL->action) || $RCMAIL->action == 'list')
+  {
+  // set current mailbox in client environment
+  $OUTPUT->set_env('mailbox', $IMAP->get_mailbox_name());
+  $OUTPUT->set_env('quota', $IMAP->get_capability('quota'));
+  $OUTPUT->set_env('delimiter', $IMAP->get_hierarchy_delimiter());
+
+  if ($CONFIG['trash_mbox'])
+    $OUTPUT->set_env('trash_mailbox', $CONFIG['trash_mbox']);
+  if ($CONFIG['drafts_mbox'])
+    $OUTPUT->set_env('drafts_mailbox', $CONFIG['drafts_mbox']);
+  if ($CONFIG['junk_mbox'])
+    $OUTPUT->set_env('junk_mailbox', $CONFIG['junk_mbox']);
+
+  if (!$OUTPUT->ajax_call)
+    rcube_add_label('checkingmail', 'deletemessage', 'movemessagetotrash', 'movingmessage');
+
   $OUTPUT->set_pagetitle(rcmail_localize_foldername($IMAP->get_mailbox_name()));
+  }
 
 
 /**

--
Gitblit v1.9.1