diff --git a/cameleer3-server-app/src/main/java/com/cameleer3/server/app/diagram/ElkDiagramRenderer.java b/cameleer3-server-app/src/main/java/com/cameleer3/server/app/diagram/ElkDiagramRenderer.java index 42fae5a2..1c695763 100644 --- a/cameleer3-server-app/src/main/java/com/cameleer3/server/app/diagram/ElkDiagramRenderer.java +++ b/cameleer3-server-app/src/main/java/com/cameleer3/server/app/diagram/ElkDiagramRenderer.java @@ -302,8 +302,11 @@ public class ElkDiagramRenderer implements DiagramRenderer { ElkNode elkNode = elkNodeMap.get(rn.getId()); if (elkNode == null) continue; + // Use the correct root for coordinate calculation: + // handler nodes use their handler root, main flow uses rootNode + ElkNode coordRoot = getElkRoot(elkNode); positionedNodes.add(extractPositionedNode(rn, elkNode, elkNodeMap, - compoundNodeIds, compoundInfos, rootNode)); + compoundNodeIds, compoundInfos, coordRoot)); } }