From e8aefbcd4eb1ac4836b4c34757ded241d2dca953 Mon Sep 17 00:00:00 2001 From: Maxmtg Date: Sat, 25 May 2013 16:29:53 +0000 Subject: [PATCH] Moved call to concede to non-edt thread to see correct output on WinLose screen --- src/main/java/forge/game/player/Player.java | 1 + .../java/forge/gui/match/controllers/CDock.java | 14 +++++++++++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/main/java/forge/game/player/Player.java b/src/main/java/forge/game/player/Player.java index 9c75a77d8c6..79f167711c9 100644 --- a/src/main/java/forge/game/player/Player.java +++ b/src/main/java/forge/game/player/Player.java @@ -2110,6 +2110,7 @@ public class Player extends GameEntity implements Comparable { * Concede. */ public final void concede() { // No cantLose checks - just lose + FThreads.assertExecutedByEdt(false); setOutcome(PlayerOutcome.concede()); } diff --git a/src/main/java/forge/gui/match/controllers/CDock.java b/src/main/java/forge/gui/match/controllers/CDock.java index ce1e38c5e42..f052317309a 100644 --- a/src/main/java/forge/gui/match/controllers/CDock.java +++ b/src/main/java/forge/gui/match/controllers/CDock.java @@ -91,12 +91,20 @@ public enum CDock implements ICDoc { return; } - Player p = findAffectedPlayer(); + final Player p = findAffectedPlayer(); if( p == null ) return; // if( c.isMindSlaved() ) return - p.concede(); - game.getAction().checkStateEffects(); + FThreads.invokeInNewThread(new Runnable() { + + @Override + public void run() { + p.concede(); + p.getGame().getAction().checkStateEffects(); + } + }); + game = null; // no second entry possible; + } /**