diff --git a/swing/src/net/sf/openrocket/gui/main/FlightConfigurationPanel.java b/swing/src/net/sf/openrocket/gui/main/FlightConfigurationPanel.java index 878300b37..d4b64a3c4 100644 --- a/swing/src/net/sf/openrocket/gui/main/FlightConfigurationPanel.java +++ b/swing/src/net/sf/openrocket/gui/main/FlightConfigurationPanel.java @@ -237,12 +237,29 @@ public class FlightConfigurationPanel extends JPanel implements StateChangeListe List fcIds = getSelectedConfigurationIds(); if (fcIds == null) return; FlightConfigurationId initFcId = fcIds.get(0); - new RenameConfigDialog(SwingUtilities.getWindowAncestor(this), rocket, initFcId).setVisible(true); + String initName = rocket.getFlightConfiguration(initFcId).getNameRaw(); + + // Launch the rename dialog + RenameConfigDialog dialog = new RenameConfigDialog(SwingUtilities.getWindowAncestor(this), rocket, initFcId); + dialog.setVisible(true); + + // Get the name of the (potentially renamed) config String newName = rocket.getFlightConfiguration(initFcId).getNameRaw(); + + document.addUndoPosition("Rename configuration(s)"); + + boolean update = !newName.equals(initName); for (int i = 1; i < fcIds.size(); i++) { - rocket.getFlightConfiguration(fcIds.get(i)).setName(newName); + FlightConfiguration config = rocket.getFlightConfiguration(fcIds.get(i)); + if (!config.getNameRaw().equals(newName)) { + update = true; + config.setName(newName); + } + } + + if (update) { + configurationChanged(ComponentChangeEvent.NONFUNCTIONAL_CHANGE); } - configurationChanged(ComponentChangeEvent.NONFUNCTIONAL_CHANGE); } private void removeConfigurationAction() {