From 5339be318eaa7e041f1c3a07f727e4319ebce763 Mon Sep 17 00:00:00 2001 From: Zach H Date: Sun, 22 Dec 2024 17:35:44 -0500 Subject: [PATCH] Fix "ghosting" of cards sticking on invalid moves (#5289) --- cockatrice/src/game/cards/card_drag_item.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/cockatrice/src/game/cards/card_drag_item.cpp b/cockatrice/src/game/cards/card_drag_item.cpp index bf7db01dd..d21e9168b 100644 --- a/cockatrice/src/game/cards/card_drag_item.cpp +++ b/cockatrice/src/game/cards/card_drag_item.cpp @@ -95,18 +95,24 @@ void CardDragItem::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) QList dragItemList; CardZone *startZone = static_cast(item)->getZone(); - if (currentZone && !(static_cast(item)->getAttachedTo() && (startZone == currentZone)) && !occupied) { - dragItemList.append(this); + if (currentZone && !(static_cast(item)->getAttachedTo() && (startZone == currentZone))) { + if (!occupied) { + dragItemList.append(this); + } + for (int i = 0; i < childDrags.size(); i++) { CardDragItem *c = static_cast(childDrags[i]); - if (!(static_cast(c->item)->getAttachedTo() && (startZone == currentZone)) && !c->occupied) + if (!occupied && !(static_cast(c->item)->getAttachedTo() && (startZone == currentZone)) && + !c->occupied) { dragItemList.append(c); + } sc->removeItem(c); } } - if (currentZone) + if (currentZone) { currentZone->handleDropEvent(dragItemList, startZone, (sp - currentZone->scenePos()).toPoint()); + } event->accept(); }