Link recalculation bug

Hi,



This is how to reproduce the strange situation occurring in my application.



1. Open the Demo1 application.

2. Drag a simple graph node (e.g. Cloud) to the view. (You can also increase its size if you want.)

3. Ungroup it using the menu.

4. Select the left port and change its ToSpot property to 256 (meaning MiddleLeft). Also, change the IsValidFrom property to True.

5. Group the node back using the menu.

6. Ctrl-drag the node downwards to duplicate it.

7. Create a link by dragging from the left port of the upper node to the left port of the lower node. Select it and make it Orthogonal. The link should be in the “C” shape.

8. In the View’s properties, change GridSnapDrag to After.

9. Move each node a little in any direction to make the link recalculate.

10. Select the link again. Look at the square handle in the lower part of the link. You can move it with your mouse in all four directions. When you do, the link becomes far from orthogonal… :)



I can also provide a binary file with this stuff saved in Demo1. Didn’t find how to attach it here.



Regards,

Michael.

In your step 4, did you mean to change the left port’s FromSpot to be 256, rather than its ToSpot, whose value already is 256?
I’m only able to reproduce the problem you describe if you turn on the link’s AvoidsNodes property, because with AvoidsNodes false, no matter how the link is routed, all of the square resize handles can only be resized in along one axis, rather than in all directions.

Hi, Walter,



(sorry for late answering)



[QUOTE=walter]

In your step 4, did you mean to change the left port’s FromSpot to be 256, rather than its ToSpot, whose value already is 256?

[/quote]



Yes, both FromSpot and ToSpot are 256 for the “left” port. Also, for the “right” port, they both are 64, but in this example it doesn’t matter. This is how my application is built (a “branch” may be opened before the node from its left port and closed after the node to its right port).



[QUOTE=walter]

I’m only able to reproduce the problem you describe if you turn on the link’s AvoidsNodes property, because with AvoidsNodes false, no matter how the link is routed, all of the square resize handles can only be resized in along one axis, rather than in all directions.

[/quote]



I forgot to say that these two nodes must be exactly one above the other, with the same X coordinate. Then all the resize handles gather in the same point and one of them can be moved in all directions.

AvoidsNodes in my application is indeed on, but I didn’t turned it on in the demo, it is still reproduced.



Thank you,

Michael