Fix so card image updated in Library as revealed top card changes

This commit is contained in:
drdev
2014-10-18 23:10:28 +00:00
parent 44dabcf382
commit 49ec80ac29
2 changed files with 16 additions and 3 deletions

View File

@@ -176,6 +176,18 @@ public class CardPanel extends SkinnedPanel implements CardContainer, IDisposabl
add(cardIdText); 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) { private void setImage(final BufferedImage srcImage) {
synchronized (imagePanel) { synchronized (imagePanel) {
imagePanel.setImage(srcImage); imagePanel.setImage(srcImage);
@@ -538,11 +550,9 @@ public class CardPanel extends SkinnedPanel implements CardContainer, IDisposabl
return; return;
} }
final BufferedImage image = cardView == null ? null : ImageCache.getImage(cardView, imagePanel.getWidth(), imagePanel.getHeight());
updateText(); updateText();
updatePTOverlay(); updatePTOverlay();
updateImage();
setImage(image);
} }
public void dispose() { public void dispose() {

View File

@@ -170,6 +170,9 @@ public class FloatingCardArea extends CardArea {
cardPanel = new CardPanel(card); cardPanel = new CardPanel(card);
cardPanel.setDisplayEnabled(true); cardPanel.setDisplayEnabled(true);
} }
else {
cardPanel.updateImage(); //ensure image updated in case visibility changed
}
cardPanels.add(cardPanel); cardPanels.add(cardPanel);
} }
} }