diff options
author | alecpl <alec@alec.pl> | 2010-05-15 14:49:10 +0000 |
---|---|---|
committer | alecpl <alec@alec.pl> | 2010-05-15 14:49:10 +0000 |
commit | 403b45d55e6d96dae52a81033dc3347dd0d0d8b4 (patch) | |
tree | d4abfc20833d6cbc55a38d4fa7d598fbfded6d3e /program | |
parent | e99d21ba051fb2b67147ab1da9c531d7acf8d99b (diff) |
- improve performance of threads expanding/collapsing (significant on IE)
Diffstat (limited to 'program')
-rw-r--r-- | program/js/list.js | 14 |
1 files changed, 9 insertions, 5 deletions
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; }, |