]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scenegraph/src/org/simantics/scenegraph/g2d/nodes/ConnectionNode.java
ConnectionNode returns local bounds even if it has empty child nodes
[simantics/platform.git] / bundles / org.simantics.scenegraph / src / org / simantics / scenegraph / g2d / nodes / ConnectionNode.java
index d4543c6d110546c08cf8709f94f3af81d9501810..9331a1edea5afea8ae5cc5b086d790bb92e02d95 100644 (file)
@@ -16,6 +16,7 @@ import java.awt.Composite;
 import java.awt.Graphics2D;
 import java.awt.Stroke;
 import java.awt.geom.Point2D;
+import java.awt.geom.Rectangle2D;
 
 import org.simantics.diagram.connection.RouteGraph;
 import org.simantics.scenegraph.INode;
@@ -161,5 +162,17 @@ public class ConnectionNode extends SingleElementNode implements InitValueSuppor
     public void afterRender(Graphics2D g) {
         g.setRenderingHint(G2DRenderingHints.KEY_END_ELEMENT, "connection");
     }
-    
+
+    @Override
+    public Rectangle2D getBoundsInLocal() {
+        // #134: Route graph connections render their own selection.
+        // ElementPainter will place an empty G2DParentNode
+        // called "selection" under this ConnectionNode which
+        // should be ignored in bounds calculations.
+        // Otherwise this node will not support being inserted
+        // into a spatial search structure and further selections
+        // will fail.
+        return super.getBoundsInLocal(true);
+    }
+
 }