From 43db280ed633f2eccf5b04fc8d306287bd9c08c2 Mon Sep 17 00:00:00 2001 From: hneemann Date: Mon, 18 Jun 2018 13:16:20 +0200 Subject: [PATCH] Fixes a new undo problem! See #155 --- .../neemann/digital/gui/components/CircuitComponent.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/java/de/neemann/digital/gui/components/CircuitComponent.java b/src/main/java/de/neemann/digital/gui/components/CircuitComponent.java index c7a58c00a..12c012f2d 100644 --- a/src/main/java/de/neemann/digital/gui/components/CircuitComponent.java +++ b/src/main/java/de/neemann/digital/gui/components/CircuitComponent.java @@ -1562,6 +1562,7 @@ public class CircuitComponent extends JComponent implements Circuit.ChangedListe private Vector pos; private Vector initialPos; private Vector initialWirePos; + private boolean isMoved = false; private MouseControllerMoveWire(Cursor cursor) { super(cursor); @@ -1591,6 +1592,7 @@ public class CircuitComponent extends JComponent implements Circuit.ChangedListe Vector pos = raster(getPosVector(e)); final Vector delta = pos.sub(this.pos); if (!delta.isZero()) { + isMoved = true; wire.move(delta); wire.noDot(); isManualScale = true; @@ -1622,7 +1624,10 @@ public class CircuitComponent extends JComponent implements Circuit.ChangedListe @Override void deactivate() { - wire.move(initialPos.sub(pos)); + if (isMoved) { + wire.move(initialPos.sub(pos)); + isMoved = false; + } removeHighLighted(); } }