diff --git a/forge-gui-desktop/src/main/java/forge/view/arcane/CardPanel.java b/forge-gui-desktop/src/main/java/forge/view/arcane/CardPanel.java index 74779c83581..71c5b1d46c4 100644 --- a/forge-gui-desktop/src/main/java/forge/view/arcane/CardPanel.java +++ b/forge-gui-desktop/src/main/java/forge/view/arcane/CardPanel.java @@ -176,6 +176,18 @@ public class CardPanel extends SkinnedPanel implements CardContainer, IDisposabl add(cardIdText); } + public void updateImage() { + synchronized (imagePanel) { + final BufferedImage image = card == null ? null : ImageCache.getImage(card, imagePanel.getWidth(), imagePanel.getHeight()); + if (imagePanel.getSrcImage() == image) { + return; + } + imagePanel.setImage(image); + repaint(); + } + doLayout(); + } + private void setImage(final BufferedImage srcImage) { synchronized (imagePanel) { imagePanel.setImage(srcImage); @@ -538,11 +550,9 @@ public class CardPanel extends SkinnedPanel implements CardContainer, IDisposabl return; } - final BufferedImage image = cardView == null ? null : ImageCache.getImage(cardView, imagePanel.getWidth(), imagePanel.getHeight()); updateText(); updatePTOverlay(); - - setImage(image); + updateImage(); } public void dispose() { diff --git a/forge-gui-desktop/src/main/java/forge/view/arcane/FloatingCardArea.java b/forge-gui-desktop/src/main/java/forge/view/arcane/FloatingCardArea.java index 2eb5ef75b32..f790f5c0200 100644 --- a/forge-gui-desktop/src/main/java/forge/view/arcane/FloatingCardArea.java +++ b/forge-gui-desktop/src/main/java/forge/view/arcane/FloatingCardArea.java @@ -170,6 +170,9 @@ public class FloatingCardArea extends CardArea { cardPanel = new CardPanel(card); cardPanel.setDisplayEnabled(true); } + else { + cardPanel.updateImage(); //ensure image updated in case visibility changed + } cardPanels.add(cardPanel); } }