Nested GoSubGraphs and Linking issues

Hi Walter,

For a while now we've had a small rendering issue that I'd like your thoughts on.
I have a class derived from GoSubGraph, where I have changed its label position, margins, fillet, etc. Everything works great until I have an outside link connecting to a node inside of a subgraph, which is inside of a subgraph, and so on, for about 10 deep nesting. If I create this structure and then collapse the outermost subgraph, the links seem to be drawn to a destination point floating above the collapsed subgraph. Sometimes links are also drawn to where nodes would be if the subgraph was expanded.
Our QA department can do this and sometimes crash the app. Any thoughts on what we've been doing wrong?
Thanks, Tyler

Can you give more detailed information on the nature of the crash?

It probably isn't just because of a lot of nesting. I just tried nested GoSubGraphs 1000 deep (each with a node as well as a child GoSubGraph). It works, but is unusably slow. 100 deep is OK.
Having a link appear to point to "nothing" is probably because the now-invisible node contained within the visible outer subgraph is bigger than the visible outer subgraph.

Unfortunately it only happened a couple of times, and they’re not sure its the culprit. When it did get stuck, the cursor was fixed as a “do not enter” sign, and our application eventually stopped responding. I do not believe it threw an exception.

I agree that the amount of nesting probably reveals a problem rather than creates it. Our nodes and collapsed subgraphs both use the same size icon, so different sizes shouldn't be the issue. I was thinking maybe because I played with the margins, there is some error and having the node nested so deeply simply compounds this error. I can send a picture if you'd like.
-Tyler

Hmmm. GoSubGraph.ComputeCollapsedSize is careful to consider the size of nested GoSubGraphs without any margins.

And in my trivial test of a 1000-deep nested subgraph, the collapsed top-level subgraph was exactly the size I expected it to be.
A screenshot might be useful, but I can't promise that I can figure out which line of code is the culprit.