summaryrefslogtreecommitdiffstats
path: root/src/libs/engine/events/ConnectionEvent.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/libs/engine/events/ConnectionEvent.cpp')
-rw-r--r--src/libs/engine/events/ConnectionEvent.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/libs/engine/events/ConnectionEvent.cpp b/src/libs/engine/events/ConnectionEvent.cpp
index 1d5b3ba1..74fa4e97 100644
--- a/src/libs/engine/events/ConnectionEvent.cpp
+++ b/src/libs/engine/events/ConnectionEvent.cpp
@@ -212,8 +212,12 @@ TypedConnectionEvent<T>::pre_process()
m_port_listnode = new ListNode<TypedConnection<T>*>(m_connection);
m_patch_listnode = new ListNode<Connection*>(m_connection);
- dst_node->providers()->push_back(new ListNode<Node*>(src_node));
- src_node->dependants()->push_back(new ListNode<Node*>(dst_node));
+ // Need to be careful about patch port connections here and adding a node's
+ // parent as a dependant/provider...
+ if (src_node->parent() == dst_node->parent()) {
+ dst_node->providers()->push_back(new ListNode<Node*>(src_node));
+ src_node->dependants()->push_back(new ListNode<Node*>(dst_node));
+ }
if (m_patch->process())
m_process_order = m_patch->build_process_order();