diff --git a/forge-gui/src/main/java/forge/gamemodes/match/input/InputPayMana.java b/forge-gui/src/main/java/forge/gamemodes/match/input/InputPayMana.java index 0fe7d9b1fd0..a913181585c 100644 --- a/forge-gui/src/main/java/forge/gamemodes/match/input/InputPayMana.java +++ b/forge-gui/src/main/java/forge/gamemodes/match/input/InputPayMana.java @@ -66,12 +66,14 @@ public abstract class InputPayMana extends InputSyncronizedBase { @Override protected void onStop() { - // Clear current Mana cost being paid for SA - saPaidFor.setManaCostBeingPaid(null); - player.popPaidForSA(); + if (!isFinished()) { + // Clear current Mana cost being paid for SA + saPaidFor.setManaCostBeingPaid(null); + player.popPaidForSA(); - if (wasFloatingMana) { //hide mana pool if it was shown due to floating mana - getController().getGui().hideManaPool(PlayerView.get(player)); + if (wasFloatingMana) { //hide mana pool if it was shown due to floating mana + getController().getGui().hideManaPool(PlayerView.get(player)); + } } } diff --git a/forge-gui/src/main/java/forge/gamemodes/match/input/InputSyncronizedBase.java b/forge-gui/src/main/java/forge/gamemodes/match/input/InputSyncronizedBase.java index df10c4fc797..54fe6a737a7 100644 --- a/forge-gui/src/main/java/forge/gamemodes/match/input/InputSyncronizedBase.java +++ b/forge-gui/src/main/java/forge/gamemodes/match/input/InputSyncronizedBase.java @@ -36,8 +36,6 @@ public abstract class InputSyncronizedBase extends InputBase implements InputSyn } protected final void stop() { - onStop(); - // ensure input won't accept any user actions. FThreads.invokeInEdtNowOrLater(new Runnable() { @Override @@ -46,6 +44,8 @@ public abstract class InputSyncronizedBase extends InputBase implements InputSyn } }); + onStop(); + // thread irrelevant if (getController().getInputQueue().getInput() != null) { getController().getInputQueue().removeInput(InputSyncronizedBase.this);