Author: jmorliaguet
Date: Tue May 23 22:12:50 2006
New Revision: 3203

Modified:
   cpsskins/branches/paris-sprint-2006/lib/cpsskins/src/cpsskins.js

Log:

- added a minimum distance before starting to drag



Modified: cpsskins/branches/paris-sprint-2006/lib/cpsskins/src/cpsskins.js
==============================================================================
--- cpsskins/branches/paris-sprint-2006/lib/cpsskins/src/cpsskins.js    
(original)
+++ cpsskins/branches/paris-sprint-2006/lib/cpsskins/src/cpsskins.js    Tue May 
23 22:12:50 2006
@@ -876,15 +876,22 @@
 
     this.target = $(draggable);
     var pos = Position.cumulativeOffset(draggable);
-
-    var x = Event.pointerX(e);
-    var y = Event.pointerY(e);
     this.x0 = pos[0];
     this.y0 = pos[1];
 
+    this.startDragX = Event.pointerX(e);
+    this.startDragY = Event.pointerY(e);
+
+    Event.observe(document, "mousemove", this.moveEvent);
+    Event.observe(document, "mouseup", this.dropEvent);
+  },
+
+  startDrag: function(x, y) {
     var dragging = this.def.dragging;
     var shifting = this.def.shifting;
 
+    var draggable = this.target;
+
     if (dragging.offset_x || dragging.offset_y ) {
       this.x1 = dragging.offset_x || -5;
       this.y1 = dragging.offset_y || -5;
@@ -929,9 +936,6 @@
 
     this.moved.setStyle({cursor: 'move'});
 
-    Event.observe(document, "mousemove", this.moveEvent);
-    Event.observe(document, "mouseup", this.dropEvent);
-
     if (this.def.dropping) {
       var highlight = this.def.dropping.highlight;
       if (highlight && this._dropzones) {
@@ -947,6 +951,18 @@
   moveEvent: function(e) {
     var x = Event.pointerX(e);
     var y = Event.pointerY(e);
+    var startDragX = this.startDragX;
+    var startDragY = this.startDragY;
+
+    if (startDragX != null && startDragY != null) {
+      if (Math.abs(startDragX-x) < 5 || Math.abs(startDragY-y) < 5) {
+        return false;
+      } else {
+        this.startDrag(x, y);
+        this.startDragX = null;
+        this.startDragY = null;
+      }
+    }
 
     var moved = $(this.moved);
     moved.moveTo({x: x-this.x1, y: y-this.y1, fit: true});
-- 
http://lists.nuxeo.com/mailman/listinfo/z3lab-checkins

Reply via email to