From 5a762aa823c5b542468c41bde7957cc1c066b102 Mon Sep 17 00:00:00 2001 From: Myrd Date: Sat, 26 Dec 2015 04:58:13 +0000 Subject: [PATCH] [Desktop] Fix issue where the battlefield sometimes would not get repainted. --- .../src/main/java/forge/view/arcane/PlayArea.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/forge-gui-desktop/src/main/java/forge/view/arcane/PlayArea.java b/forge-gui-desktop/src/main/java/forge/view/arcane/PlayArea.java index 9e4cc71b141..81c5dad5663 100644 --- a/forge-gui-desktop/src/main/java/forge/view/arcane/PlayArea.java +++ b/forge-gui-desktop/src/main/java/forge/view/arcane/PlayArea.java @@ -334,6 +334,7 @@ public class PlayArea extends CardPanelContainer implements CardPanelMouseListen this.setPreferredSize(new Dimension(maxRowWidth - this.cardSpacingX, y - this.cardSpacingY)); this.revalidate(); positionAllCards(lastTemplate); + repaint(); } // Position all card panels @@ -641,7 +642,7 @@ public class PlayArea extends CardPanelContainer implements CardPanelMouseListen boolean needLayoutRefresh = !newPanels.isEmpty(); for (final CardView card : modelCopy) { - if (updateCard(card, true)) { + if (doUpdateCard(card, true)) { needLayoutRefresh = true; } } @@ -661,6 +662,13 @@ public class PlayArea extends CardPanelContainer implements CardPanelMouseListen } public boolean updateCard(final CardView card, boolean fromRefresh) { + FThreads.assertExecutedByEdt(true); + boolean result = doUpdateCard(card, fromRefresh); + repaint(); + return result; + } + + private boolean doUpdateCard(final CardView card, boolean fromRefresh) { final CardPanel toPanel = getCardPanel(card.getId()); if (toPanel == null) { return false; }