Mouse actions are aborted if the window loses focus.

This commit is contained in:
hneemann 2019-08-22 10:20:47 +02:00
parent 157bcd2636
commit 92863b76eb

View File

@ -264,6 +264,15 @@ public class CircuitComponent extends JComponent implements ChangedListener, Lib
mouseNormal.activate(); mouseNormal.activate();
if (parent != null) {
parent.addWindowListener(new WindowAdapter() {
@Override
public void windowDeactivated(WindowEvent e) {
activeMouseController.escapePressed();
}
});
}
setToolTipText(""); setToolTipText("");
} }
@ -477,8 +486,10 @@ public class CircuitComponent extends JComponent implements ChangedListener, Lib
* redo last undo * redo last undo
*/ */
private void redo() { private void redo() {
if (!isLocked() && undoManager.redoAvailable()) { if (activeMouseController != mouseNormal)
activeMouseController.escapePressed(); activeMouseController.escapePressed();
else {
if (!isLocked() && undoManager.redoAvailable()) {
try { try {
undoManager.redo(); undoManager.redo();
} catch (ModifyException e) { } catch (ModifyException e) {
@ -486,6 +497,7 @@ public class CircuitComponent extends JComponent implements ChangedListener, Lib
} }
} }
} }
}
private String getRedoToolTip() { private String getRedoToolTip() {
if (undoManager.redoAvailable()) if (undoManager.redoAvailable())