diff --git a/forge-gui-desktop/src/main/java/forge/screens/match/CMatchUI.java b/forge-gui-desktop/src/main/java/forge/screens/match/CMatchUI.java index db4efdbbee0..1e12acb4e9e 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/match/CMatchUI.java +++ b/forge-gui-desktop/src/main/java/forge/screens/match/CMatchUI.java @@ -524,6 +524,45 @@ public final class CMatchUI } } + @Override + public void setSelectables(final Iterable cards) { + super.setSelectables(cards); + // update zones on tabletop and floating zones - non-selectable cards may be rendered differently + FThreads.invokeInEdtNowOrLater(new Runnable() { + @Override public final void run() { + for (final PlayerView p : getGameView().getPlayers()) { + if ( p.getCards(ZoneType.Battlefield) != null ) { + updateCards(p.getCards(ZoneType.Battlefield)); + } + if ( p.getCards(ZoneType.Hand) != null ) { + updateCards(p.getCards(ZoneType.Hand)); + } + } + FloatingZone.refreshAll(); + } + }); + } + + @Override + public void clearSelectables() { + super.clearSelectables(); + // update zones on tabletop and floating zones - non-selectable cards may be rendered differently + FThreads.invokeInEdtNowOrLater(new Runnable() { + @Override public final void run() { + for (final PlayerView p : getGameView().getPlayers()) { + if ( p.getCards(ZoneType.Battlefield) != null ) { + updateCards(p.getCards(ZoneType.Battlefield)); + } + if ( p.getCards(ZoneType.Hand) != null ) { + updateCards(p.getCards(ZoneType.Hand)); + } + } + FloatingZone.refreshAll(); + } + }); + } + + @Override public List getMenus() { return menus.getMenus(); 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 7d0cbb2ce89..8a7ee3c99c1 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 @@ -279,7 +279,7 @@ public class CardPanel extends SkinnedPanel implements CardContainer, IDisposabl if (isSelected) { g2d.setColor(Color.green); final int n = Math.max(1, Math.round(cardWidth * CardPanel.SELECTED_BORDER_SIZE)); - g2d.fillRoundRect(cardXOffset - n, (cardYOffset - n) + offset, cardWidth + (n * 2), cardHeight + (n * 2), cornerSize + n , cornerSize + n); + g2d.fillRoundRect(cardXOffset - n, (cardYOffset - n) + offset, cardWidth + (n * 2), cardHeight + (n * 2), cornerSize + n , cornerSize + n); } // Black fill - (will become an outline for white bordered cards) @@ -335,11 +335,9 @@ public class CardPanel extends SkinnedPanel implements CardContainer, IDisposabl cardWidth, cardHeight, Math.round(cardWidth * BLACK_BORDER_SIZE)); } - System.out.println("Painting " + getCard() + " selecting " + matchUI.isSelecting()); boolean nonselectable = matchUI.isSelecting() && !matchUI.isSelectable(getCard()); - // if selecting, darken non-selectable cards - pfps - needs fixes to refreshing to do right + // if selecting, darken non-selectable cards if ( nonselectable ) { - System.out.println("Paint nonselectable " + card); boolean noBorderPref = !isPreferenceEnabled(FPref.UI_RENDER_BLACK_BORDERS); boolean cardImgHasAlpha = imagePanel != null && imagePanel.getSrcImage() != null && imagePanel.getSrcImage().getColorModel().hasAlpha(); final int cornerSize = noBorderPref && !cardImgHasAlpha ? 0 : Math.max(4, Math.round(cardWidth * CardPanel.ROUNDED_CORNER_SIZE)); @@ -373,7 +371,6 @@ public class CardPanel extends SkinnedPanel implements CardContainer, IDisposabl final boolean canShow = matchUI.mayView(card); final boolean showText = !imagePanel.hasImage() || !isAnimationPanel; - System.out.println("doLayout " + card); displayCardNameOverlay(showText && canShow && showCardNameOverlay(), imgSize, imgPos); displayPTOverlay(showText && (canShow || card.isFaceDown()) && showCardPowerOverlay(), imgSize, imgPos); displayCardIdOverlay(showText && canShow && showCardIdOverlay(), imgSize, imgPos); diff --git a/forge-gui-desktop/src/main/java/forge/view/arcane/FloatingZone.java b/forge-gui-desktop/src/main/java/forge/view/arcane/FloatingZone.java index d81af9fef88..616a7cce38c 100644 --- a/forge-gui-desktop/src/main/java/forge/view/arcane/FloatingZone.java +++ b/forge-gui-desktop/src/main/java/forge/view/arcane/FloatingZone.java @@ -94,6 +94,11 @@ public class FloatingZone extends FloatingCardArea { } floatingAreas.clear(); } + public static void refreshAll() { + for (final FloatingZone cardArea : floatingAreas.values()) { + cardArea.refresh(); + } + } private final ZoneType zone; private PlayerView player;