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 67ca4f6680c..07c501b5b3f 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 @@ -697,7 +697,15 @@ public class PlayArea extends CardPanelContainer implements CardPanelMouseListen CardPanel attachedToPanel; if (card.getAttachedTo() != null) { - attachedToPanel = getCardPanel(card.getAttachedTo().getId()); + if (card != card.getAttachedTo().getAttachedTo()) + attachedToPanel = getCardPanel(card.getAttachedTo().getId()); + else { + toPanel.getAttachedPanels().remove(getCardPanel(card.getAttachedTo().getId())); + CardPanel panel = getCardPanel(card.getAttachedTo().getId()); + if (panel != null) + panel.setAttachedToPanel(null); + attachedToPanel = null; + } } else { attachedToPanel = null; } diff --git a/forge-gui-mobile/src/forge/screens/match/TargetingOverlay.java b/forge-gui-mobile/src/forge/screens/match/TargetingOverlay.java index f1b799143f8..73796dbe256 100644 --- a/forge-gui-mobile/src/forge/screens/match/TargetingOverlay.java +++ b/forge-gui-mobile/src/forge/screens/match/TargetingOverlay.java @@ -77,6 +77,9 @@ public class TargetingOverlay { drawArrow(g, endpoints.get(attachedTo.getId()), endpoints.get(c.getId()), ArcConnection.Friends); } } + if (null != attachedTo && c == attachedTo.getAttachedTo()) { + drawArrow(g, endpoints.get(attachedTo.getId()), endpoints.get(c.getId()), ArcConnection.Friends); + } if (null != attachedCards) { for (final CardView enc : attachedCards) { if (enc.getController() != null && !enc.getController().equals(c.getController())) { diff --git a/forge-gui-mobile/src/forge/screens/match/views/VCardDisplayArea.java b/forge-gui-mobile/src/forge/screens/match/views/VCardDisplayArea.java index a089e8b4657..cc0f5bf105d 100644 --- a/forge-gui-mobile/src/forge/screens/match/views/VCardDisplayArea.java +++ b/forge-gui-mobile/src/forge/screens/match/views/VCardDisplayArea.java @@ -300,7 +300,12 @@ public abstract class VCardDisplayArea extends VDisplayArea implements ActivateH } if (card.getAttachedTo() != null) { - setAttachedToPanel(CardAreaPanel.get(card.getAttachedTo())); + if (card != card.getAttachedTo().getAttachedTo()) + setAttachedToPanel(CardAreaPanel.get(card.getAttachedTo())); + else { + attachedPanels.remove(CardAreaPanel.get(card.getAttachedTo())); + setAttachedToPanel(null); + } } else { setAttachedToPanel(null);