File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -140,22 +140,40 @@ void MergerEditor::mouseDown(const MouseEvent& e)
140140
141141 Array<GenericProcessor*> selectableProcessors;
142142
143- for (auto & processor : availableProcessors)
143+ for (auto & processorToCheck : availableProcessors)
144144 {
145- if (!processor ->isMerger () &&
146- !processor ->isSplitter () &&
147- processor ->getDestNode () == 0 )
145+ if (!processorToCheck ->isMerger () &&
146+ !processorToCheck ->isSplitter () &&
147+ processorToCheck ->getDestNode () == 0 )
148148 {
149-
150- String name = String (processor->getNodeId ());
151- name += " - " ;
152- name += processor->getName ();
153-
154- menu.addItem (++menuItemIndex, // index
155- name, // message
156- true ); // isSelectable
157149
158- selectableProcessors.add (processor);
150+ bool isDownstream = false ;
151+ GenericProcessor* sourceNode = processorToCheck->getSourceNode ();
152+
153+ while (sourceNode != 0 )
154+ {
155+ if (sourceNode == getProcessor ())
156+ {
157+ isDownstream = true ;
158+ break ;
159+ }
160+
161+ sourceNode = sourceNode->getSourceNode ();
162+ }
163+
164+ if (!isDownstream)
165+ {
166+ String name = String (processorToCheck->getNodeId ());
167+ name += " - " ;
168+ name += processorToCheck->getName ();
169+
170+ menu.addItem (++menuItemIndex, // index
171+ name, // message
172+ true ); // isSelectable
173+
174+ selectableProcessors.add (processorToCheck);
175+ }
176+
159177 }
160178 }
161179
You can’t perform that action at this time.
0 commit comments