diff options
Diffstat (limited to 'src/libs/engine/events/ConnectionEvent.cpp')
-rw-r--r-- | src/libs/engine/events/ConnectionEvent.cpp | 8 |
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(); |