summaryrefslogtreecommitdiff
path: root/program/js
diff options
context:
space:
mode:
authoralecpl <alec@alec.pl>2010-05-15 14:49:10 +0000
committeralecpl <alec@alec.pl>2010-05-15 14:49:10 +0000
commit403b45d55e6d96dae52a81033dc3347dd0d0d8b4 (patch)
treed4abfc20833d6cbc55a38d4fa7d598fbfded6d3e /program/js
parente99d21ba051fb2b67147ab1da9c531d7acf8d99b (diff)
- improve performance of threads expanding/collapsing (significant on IE)
Diffstat (limited to 'program/js')
-rw-r--r--program/js/list.js14
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;
},