From 953c130da724733783bd24eb0f6c3db909b19ccd Mon Sep 17 00:00:00 2001 From: Denis Nevmerzhitsky Date: Thu, 19 Dec 2013 16:47:06 +0200 Subject: [PATCH] dnd start distance feature --- src/DragAndDrop.js | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/DragAndDrop.js b/src/DragAndDrop.js index 3dbd0213..6eda15ca 100644 --- a/src/DragAndDrop.js +++ b/src/DragAndDrop.js @@ -8,6 +8,7 @@ y: 0 }, node: null, + distance: 1, // methods _drag: function(evt) { @@ -15,6 +16,19 @@ node = dd.node; if(node) { + if(!dd.isDragging) { + var pos = node.getStage().getPointerPosition(); + var dragDistance = node.getAttr('dragDistance') || dd.distance; + var distance = Math.max( + Math.abs(pos.x - dd.startPointerPos.x), + Math.abs(pos.y - dd.startPointerPos.y) + ); + + if (distance < dragDistance) { + return; + } + } + node._setDragPosition(evt); if(!dd.isDragging) { @@ -83,6 +97,7 @@ } dd.node = this; + dd.startPointerPos = pos; dd.offset.x = pos.x - ap.x; dd.offset.y = pos.y - ap.y; dd.anim.setLayers(layer || this.getLayers());