diff --git a/src/DragAndDrop.js b/src/DragAndDrop.js index 1cc0da24..e824934c 100644 --- a/src/DragAndDrop.js +++ b/src/DragAndDrop.js @@ -3,6 +3,7 @@ // properties anim: new Kinetic.Animation(), isDragging: false, + justDragged: false, offset: { x: 0, y: 0 @@ -40,6 +41,7 @@ // operation actually started. if(dd.isDragging) { dd.isDragging = false; + dd.justDragged = true; Kinetic.listenClickTap = false; if (evt) { diff --git a/src/Stage.js b/src/Stage.js index f3c459e8..eabf7da7 100644 --- a/src/Stage.js +++ b/src/Stage.js @@ -442,17 +442,20 @@ _mouseup: function(evt) { if (!Kinetic.UA.mobile) { this._setPointerPosition(evt); - var that = this, - shape = this.getIntersection(this.getPointerPosition()), + var shape = this.getIntersection(this.getPointerPosition()), clickStartShape = this.clickStartShape, - fireDblClick = false; + fireDblClick = false, + dd = Kinetic.DD; if(Kinetic.inDblClickWindow) { fireDblClick = true; Kinetic.inDblClickWindow = false; } - else { + // don't set inDblClickWindow after dragging + else if (!dd || !dd.justDragged) { Kinetic.inDblClickWindow = true; + } else if (dd) { + dd.justDragged = false; } setTimeout(function() {