From 403b45d55e6d96dae52a81033dc3347dd0d0d8b4 Mon Sep 17 00:00:00 2001
From: alecpl <alec@alec.pl>
Date: Sat, 15 May 2010 10:49:10 -0400
Subject: [PATCH] - improve performance of threads expanding/collapsing (significant on IE)

---
 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 9493121..480cc62 100644
--- a/program/js/list.js
+++ b/program/js/list.js
@@ -486,7 +486,8 @@
           $(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 @@
         $(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 @@
     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;
 },

--
Gitblit v1.9.1