private bool ActionLeftMouseDown() { if (_mouseDownNode == null) { return(false); } _outputIndex = _mouseDownNode.OutputClicked(_mousePos); int inputIndex = _mouseDownNode.InputClicked(_mousePos); if (_outputIndex >= 0) { _editor.ConnectionMode = true; } else if (inputIndex >= 0) { if (_mouseDownNode.InputIsConnected(inputIndex)) { var output = _mouseDownNode.GetConnectedInterfaceFromInput(inputIndex); _mouseDownNode.DisconnectInput(inputIndex); _mouseDownNode = output.connectedNode; _outputIndex = output.connectedIndex; _mouseDownNode.DisconnectOutput(_outputIndex); _editor.SetSelectedNode(output.connectedNode); _editor.ConnectionMode = true; } } return(false); // TODO remove this? tells the controller whether to Use() this event. }