Author: knopp
Date: Thu Nov 29 10:33:15 2007
New Revision: 599537

URL: http://svn.apache.org/viewvc?rev=599537&view=rev
Log:
fixed another IE memory leak

Modified:
    
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/ajax/wicket-ajax.js

Modified: 
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/ajax/wicket-ajax.js
URL: 
http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/ajax/wicket-ajax.js?rev=599537&r1=599536&r2=599537&view=diff
==============================================================================
--- 
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/ajax/wicket-ajax.js 
(original)
+++ 
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/ajax/wicket-ajax.js 
Thu Nov 29 10:33:15 2007
@@ -1561,7 +1561,7 @@
  * Flexible dragging support.
  */
 Wicket.Drag = {
-       
+               
        /**
         * Initializes the dragging on the specified element.
         * Element's onmousedown will be replaced by generated handler.
@@ -1579,42 +1579,48 @@
                        onDragEnd = Wicket.emptyFunction;
                if (typeof(onDrag) == "undefined")
                        onDrag = Wicket.emptyFunction;
+
+               element.wicketOnDragBegin = onDragBegin;
+               element.wicketOnDrag = onDrag;
+               element.wicketOnDragEnd = onDragEnd;
+
                
                // set the mousedown handler 
-               element.onmousedown = function(e) {                     
-                       
-                       e = Wicket.fixEvent(e);
+               Wicket.Event.add(element, "mousedown", 
Wicket.Drag.mouseDownHandler);                                                  
                 
+       },
        
-                       // HACK - for safari stopPropagation doesn't work well 
because
-                       // it also prevents scrollbars and form components 
getting the
-                       // event. Therefore for safari the 'ignore' flag is set 
on event. 
-                       if (typeof(e.ignore) == "undefined") {
-                               
-                               Wicket.stopEvent(e);
+       mouseDownHandler: function(e) {
+               e = Wicket.fixEvent(e);
+       
+               var element = this;
        
-                               onDragBegin(element);
+               // HACK - for safari stopPropagation doesn't work well because
+               // it also prevents scrollbars and form components getting the
+               // event. Therefore for safari the 'ignore' flag is set on 
event. 
+               if (typeof(e.ignore) == "undefined") {
+                       
+                       Wicket.stopEvent(e);
+
+                       element.wicketOnDragBegin(element);             
+                       
+                       element.lastMouseX = e.clientX;
+                       element.lastMouseY = e.clientY;
+                       
+                       element.old_onmousemove = document.onmousemove;
+                       element.old_onmouseup = document.onmouseup;
+                       element.old_onselectstart = document.onselectstart;     
+                       element.old_onmouseout = document.onmouseout;           
+                       
+                       document.onselectstart = function() { return false; }
+                       document.onmousemove = Wicket.Drag.mouseMove;
+                       document.onmouseup = Wicket.Drag.mouseUp;
+                       document.onmouseout = Wicket.Drag.mouseOut;             
                
+                                               
+                       Wicket.Drag.current = element;
+                                               
+                       return false;
+               }                       
                        
-                               element.onDrag = onDrag;
-                               element.onDragEnd = onDragEnd;
-                               
-                               element.lastMouseX = e.clientX;
-                               element.lastMouseY = e.clientY;
-                               
-                               element.old_onmousemove = document.onmousemove;
-                               element.old_onmouseup = document.onmouseup;
-                               element.old_onselectstart = 
document.onselectstart;     
-                               element.old_onmouseout = document.onmouseout;   
        
-                               
-                               document.onselectstart = function() { return 
false; }
-                               document.onmousemove = Wicket.Drag.mouseMove;
-                               document.onmouseup = Wicket.Drag.mouseUp;
-                               document.onmouseout = Wicket.Drag.mouseOut;     
                        
-                                                       
-                               Wicket.Drag.current = element;
-                                                       
-                               return false;
-                       }                       
-               };              
        },
        
        /**
@@ -1649,7 +1655,7 @@
                        var deltaX = e.clientX - o.lastMouseX;
                        var deltaY = e.clientY - o.lastMouseY;
                                
-                       var res = o.onDrag(o, deltaX, deltaY, e);
+                       var res = o.wicketOnDrag(o, deltaX, deltaY, e);
                        
                        if (res == null)
                                res = [0, 0];
@@ -1672,10 +1678,8 @@
                var o = Wicket.Drag.current;
                
                if (o != null && typeof(o) != "undefined") {
-                       o.onDragEnd(o);         
+                       o.wicketOnDragEnd(o);           
                        
-                       o.onDrag = null;
-                       o.onDragEnd = null;
                        o.lastMouseX = null;
                        o.lastMouseY = null;
                        


Reply via email to