From 403b45d55e6d96dae52a81033dc3347dd0d0d8b4 Mon Sep 17 00:00:00 2001 From: alecpl Date: Sat, 15 May 2010 14:49:10 +0000 Subject: - improve performance of threads expanding/collapsing (significant on IE) --- program/js/list.js | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'program') diff --git a/program/js/list.js b/program/js/list.js index 9493121d5..480cc6243 100644 --- a/program/js/list.js +++ b/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