diff --git a/swing/src/net/sf/openrocket/gui/main/RocketActions.java b/swing/src/net/sf/openrocket/gui/main/RocketActions.java index 15ed1d597..1e70b1129 100644 --- a/swing/src/net/sf/openrocket/gui/main/RocketActions.java +++ b/swing/src/net/sf/openrocket/gui/main/RocketActions.java @@ -659,6 +659,7 @@ public class RocketActions { } List copiedComponents = new LinkedList<>(copyComponentsMaintainParent(components)); + copiedComponents.sort(Comparator.comparing(c -> c.getParent() != null ? -c.getParent().getChildPosition(c) : 0)); OpenRocketClipboard.setClipboard(copiedComponents); delete(components); @@ -717,6 +718,7 @@ public class RocketActions { if (isCopyable(components)) { List copiedComponents = new LinkedList<>(copyComponentsMaintainParent(components)); + copiedComponents.sort(Comparator.comparing(c -> c.getParent() != null ? -c.getParent().getChildPosition(c) : 0)); OpenRocketClipboard.setClipboard(copiedComponents); parentFrame.selectTab(BasicFrame.COMPONENT_TAB);