From 0061e7b77fee24b216433256b636505a2d5cb9d4 Mon Sep 17 00:00:00 2001
From: alecpl <alec@alec.pl>
Date: Thu, 04 Jun 2009 16:01:31 -0400
Subject: [PATCH] - fix drag_move performance

---
 program/js/app.js |   33 ++++++++++++++++++++-------------
 1 files changed, 20 insertions(+), 13 deletions(-)

diff --git a/program/js/app.js b/program/js/app.js
index 9cc3c1d..3bc1942 100644
--- a/program/js/app.js
+++ b/program/js/app.js
@@ -1262,10 +1262,11 @@
       this.env.folder_coords = new Array();
       for (var k in model) {
         if (li = this.get_folder_li(k)) {
-          pos = $(li.firstChild).offset();
-          // only visible folders
-          if (height = li.firstChild.offsetHeight)
-            this.env.folder_coords[k] = { x1:pos.left, y1:pos.top, x2:pos.left + li.firstChild.offsetWidth, y2:pos.top + height };
+	  // only visible folders
+          if (height = li.firstChild.offsetHeight) {
+    	    pos = $(li.firstChild).offset();
+    	    this.env.folder_coords[k] = { x1:pos.left, y1:pos.top, x2:pos.left + li.firstChild.offsetWidth, y2:pos.top + height, on:0 };
+	  }
         }
       }
     }
@@ -1308,24 +1309,30 @@
         }
         return;
       }
-
+    
+      var last = this.env.last_folder_target;
       // over the folders
       for (var k in this.env.folder_coords) {
         pos = this.env.folder_coords[k];
-        if (this.check_droptarget(k) && ((mouse.x >= pos.x1) && (mouse.x < pos.x2) 
-            && (mouse.y >= pos.y1) && (mouse.y < pos.y2))) {
+        if ((mouse.x >= pos.x1) && (mouse.x < pos.x2) 
+            && (mouse.y >= pos.y1) && (mouse.y < pos.y2)
+	    && this.check_droptarget(k)) {
+	  if (k == last)
+	    continue; 
           $(this.get_folder_li(k)).addClass('droptarget');
           this.env.last_folder_target = k;
-        }
-        else {
+	  this.env.folder_coords[k].on = 1;
+	}
+        else if (pos.on){
+	  if (k == last)
+	    this.env.last_folder_target = null;
+	  this.env.folder_coords[k].on = 0;
           $(this.get_folder_li(k)).removeClass('droptarget');
-          if (k == this.env.last_folder_target)
-            this.env.last_folder_target = null;
-        }
+	}
       }
     }
   };
-  
+
   this.collapse_folder = function(id)
     {
     var div;

--
Gitblit v1.9.1