From f4230a18054e499a86a2b0d645507a24732c9a80 Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Thu, 2 Dec 2021 08:56:48 -0800 Subject: [PATCH] nodeview: accept ctrl dragging inputs too --- app/widget/nodeview/nodeview.cpp | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/app/widget/nodeview/nodeview.cpp b/app/widget/nodeview/nodeview.cpp index 5f87c40b4..da10d899b 100644 --- a/app/widget/nodeview/nodeview.cpp +++ b/app/widget/nodeview/nodeview.cpp @@ -316,13 +316,20 @@ void NodeView::mousePressEvent(QMouseEvent *event) create_edge_from_output_ = true; if (event->modifiers() & Qt::ControlModifier) { - create_edge_output_item_ = dynamic_cast(item); - if (create_edge_output_item_ && !create_edge_output_item_->IsOutputItem()) { - create_edge_output_item_ = nullptr; + NodeViewItem *mouse_item = dynamic_cast(item); + + if (mouse_item) { + if (mouse_item->IsOutputItem()) { + create_edge_output_item_ = mouse_item; + } else { + create_edge_input_item_ = mouse_item; + create_edge_input_ = mouse_item->GetInput(); + create_edge_from_output_ = false; + } } } - if (!create_edge_output_item_) { + if (!create_edge_output_item_ && !create_edge_input_item_) { // Determine if user clicked on a connector if (NodeViewItemConnector *connector = dynamic_cast(item)) { NodeViewItem *attached = static_cast(connector->parentItem());