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.
    }