From a3f0c954834ed50d3cbe84863651ab82e3c0c529 Mon Sep 17 00:00:00 2001 From: Michael M Slusarz Date: Fri, 5 Feb 2010 14:21:09 -0700 Subject: [PATCH] Ticket #8805: Optimize folder tree initialization --- imp/docs/CHANGES | 1 + imp/lib/Imap/Tree.php | 8 +++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/imp/docs/CHANGES b/imp/docs/CHANGES index c8a009bc4..38d6fd7b5 100644 --- a/imp/docs/CHANGES +++ b/imp/docs/CHANGES @@ -144,6 +144,7 @@ v5.0-git v4.3.7-cvs ---------- +[mms] Optimize folder tree initialization (Ticket #8805). [mms] Add command line fetchmail script (tjacyno@galasoft.net, Ticket #8812). [jan] Workaround broken PHP number formatting with some locales (Bug #8780). diff --git a/imp/lib/Imap/Tree.php b/imp/lib/Imap/Tree.php index 5abb53ca1..66aa741fa 100644 --- a/imp/lib/Imap/Tree.php +++ b/imp/lib/Imap/Tree.php @@ -1079,12 +1079,18 @@ class IMP_Imap_Tree protected function _modifyExpandedList($id, $action) { $this->_initExpandedList(); + if ($action == 'add') { + $change = empty($this->_expanded[$id]); $this->_expanded[$id] = true; } else { + $change = !empty($this->_expanded[$id]); unset($this->_expanded[$id]); } - $GLOBALS['prefs']->setValue('expanded_folders', serialize($this->_expanded)); + + if ($change) { + $GLOBALS['prefs']->setValue('expanded_folders', serialize($this->_expanded)); + } } /** -- 2.11.0