From 78aa43379ef57271e34972e6b9015b481644fac1 Mon Sep 17 00:00:00 2001 From: alec Date: Sat, 15 May 2010 14:49:10 +0000 Subject: - improve performance of threads expanding/collapsing (significant on IE) git-svn-id: https://svn.roundcube.net/trunk@3621 208e9e7b-5314-0410-a742-e7e81cd9613c --- roundcubemail/program/js/list.js | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'roundcubemail/program') diff --git a/roundcubemail/program/js/list.js b/roundcubemail/program/js/list.js index 9493121d5..480cc6243 100644 --- a/roundcubemail/program/js/list.js +++ b/roundcubemail/program/js/list.js @@ -486,7 +486,8 @@ collapse_all: function(row) $(new_row).hide(); if (r.has_children) { r.expanded = false; - this.update_expando(r.uid); + if (!r.depth || !this.multiexpand) + this.update_expando(r.uid, false); this.triggerEvent('expandcollapse', { uid:r.uid, expanded:r.expanded }); } } @@ -525,7 +526,12 @@ expand_all: function(row) $(new_row).show(); if (r.has_children) { r.expanded = true; - this.update_expando(r.uid, true); + // in multiexpand mode only root has expando icon + // so we don't need to set it for children, this + // improves performance because getElementById() + // is relatively slow on IE + if (!r.depth || !this.multiexpand) + this.update_expando(r.uid, true); this.triggerEvent('expandcollapse', { uid:r.uid, expanded:r.expanded }); } } @@ -1043,9 +1049,7 @@ use_plusminus_key: function(keyCode, mod_key) else this.collapse(selected_row); - var expando = document.getElementById('rcmexpando' + selected_row.uid); - if (expando) - expando.className = selected_row.expanded?'expanded':'collapsed'; + this.update_expando(selected_row.uid, selected_row.expanded); return false; }, -- cgit v1.2.3