fixed a bug: undo sets the correct modified state if all modifications are undone.

This commit is contained in:
hneemann 2017-06-02 08:36:49 +02:00
parent dd4a4eb2a9
commit cf93a019ae
3 changed files with 6 additions and 3 deletions

View File

@ -661,7 +661,10 @@ public class Circuit {
listeners.remove(listener); listeners.remove(listener);
} }
private void fireChangedEvent() { /**
* notifies listeners about circuit changes
*/
public void fireChangedEvent() {
if (listeners != null) if (listeners != null)
for (ChangedListener l : listeners) for (ChangedListener l : listeners)
l.circuitHasChanged(); l.circuitHasChanged();

View File

@ -1114,7 +1114,7 @@ public final class Main extends JFrame implements ClosingWindowListener.ConfirmS
@Override @Override
public void circuitHasChanged() { public void circuitHasChanged() {
ensureModelIsStopped(); ensureModelIsStopped();
if (!modifiedPrefixVisible) if (modifiedPrefixVisible != circuitComponent.getCircuit().isModified())
setFilename(filename, false); setFilename(filename, false);
} }

View File

@ -381,7 +381,7 @@ public class CircuitComponent extends JComponent implements Circuit.ChangedListe
redoAction.setEnabled(true); redoAction.setEnabled(true);
if (undoPosition == 0) if (undoPosition == 0)
undoAction.setEnabled(false); undoAction.setEnabled(false);
circuit.modified(); circuit.fireChangedEvent();
repaintNeeded(); repaintNeeded();
} }
} }