From 84c870d3062bdd3bedce7df60ed557a24d51196e Mon Sep 17 00:00:00 2001 From: Max Franz Date: Mon, 9 Jul 2018 15:22:05 -0400 Subject: [PATCH] Update the touch event handlers in the renderer for dragging nodes to use `nodes.silentShift()` Ref #1881 --- .../renderer/base/load-listeners.js | 35 +++++++++---------- 1 file changed, 16 insertions(+), 19 deletions(-) diff --git a/src/extensions/renderer/base/load-listeners.js b/src/extensions/renderer/base/load-listeners.js index f471d19260..9c8bc6de42 100644 --- a/src/extensions/renderer/base/load-listeners.js +++ b/src/extensions/renderer/base/load-listeners.js @@ -820,8 +820,6 @@ BRp.load = function(){ var tcol = cy.collection( toTrigger ); - // TODO apply same change to touch - // ( tcol .silentShift( totalShift ) .emit('position drag') @@ -1636,28 +1634,22 @@ BRp.load = function(){ addNodesToDrag( cy.collection( draggedEles ), { inDragLayer: true } ); } - for( var k = 0; k < draggedEles.length; k++ ){ - var draggedEle = draggedEles[ k ]; + r.dragData.didDrag = true; - if( r.nodeIsDraggable( draggedEle ) && draggedEle.grabbed() ){ - r.dragData.didDrag = true; - var dPos = draggedEle.position(); + var totalShift = { x: 0, y: 0 }; - if( is.number( disp[0] ) && is.number( disp[1] ) ){ - dPos.x += disp[0]; - dPos.y += disp[1]; - } - - if( justStartedDrag ){ - r.redrawHint( 'eles', true ); + if( is.number( disp[0] ) && is.number( disp[1] ) ){ + totalShift.x += disp[0]; + totalShift.y += disp[1]; - var dragDelta = r.touchData.dragDelta; + if( justStartedDrag ){ + r.redrawHint( 'eles', true ); - if( dragDelta && is.number( dragDelta[0] ) && is.number( dragDelta[1] ) ){ - dPos.x += dragDelta[0]; - dPos.y += dragDelta[1]; - } + var dragDelta = r.touchData.dragDelta; + if( dragDelta && is.number( dragDelta[0] ) && is.number( dragDelta[1] ) ){ + totalShift.x += dragDelta[0]; + totalShift.y += dragDelta[1]; } } } @@ -1669,6 +1661,11 @@ BRp.load = function(){ r.hoverData.draggingEles = true; + ( tcol + .silentShift( totalShift ) + .emit('position drag') + ); + r.redrawHint( 'drag', true ); if(