From 4e762e206397a00c0b428ef5d81d5b61bf789ef1 Mon Sep 17 00:00:00 2001 From: Nick O'Leary Date: Tue, 31 May 2016 23:42:00 +0100 Subject: [PATCH] Enable shift-drag detach of just the selected link --- editor/js/ui/view.js | 33 +++++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/editor/js/ui/view.js b/editor/js/ui/view.js index 130c6226d..35f19ede4 100644 --- a/editor/js/ui/view.js +++ b/editor/js/ui/view.js @@ -539,18 +539,31 @@ RED.view = (function() { if (d3.event.shiftKey) { // Get all the wires we need to detach. var links = []; - var filter; - if (mousedown_port_type === 0) { - filter = { - source:mousedown_node, - sourcePort: mousedown_port_index - } + var existingLinks = []; + if (selected_link && + ((mousedown_port_type === 0 && + selected_link.source === mousedown_node && + selected_link.sourcePort === mousedown_port_index + ) || + (mousedown_port_type === 1 && + selected_link.target === mousedown_node + )) + ) { + existingLinks = [selected_link]; } else { - filter = { - target: mousedown_node + var filter; + if (mousedown_port_type === 0) { + filter = { + source:mousedown_node, + sourcePort: mousedown_port_index + } + } else { + filter = { + target: mousedown_node + } } + existingLinks = RED.nodes.filterLinks(filter); } - var existingLinks = RED.nodes.filterLinks(filter); for (i=0;i