diff --git a/cockatrice/src/game/zones/table_zone.cpp b/cockatrice/src/game/zones/table_zone.cpp index 19f7eebcb..0aace73ca 100644 --- a/cockatrice/src/game/zones/table_zone.cpp +++ b/cockatrice/src/game/zones/table_zone.cpp @@ -213,7 +213,18 @@ void TableZone::reorganizeCards() void TableZone::toggleTapped() { - QList selectedItems = scene()->selectedItems(); + QList selectedItemsRaw = scene()->selectedItems(); + QList selectedItems; + + auto isCardOnTable = [](const QGraphicsItem *item) { + if (auto card = qgraphicsitem_cast(item)) { + return card->getZone()->getName() == "table"; + } + return false; + }; + + std::copy_if(selectedItemsRaw.begin(), selectedItemsRaw.end(), std::back_inserter(selectedItems), isCardOnTable); + bool tapAll = std::any_of(selectedItems.begin(), selectedItems.end(), [](const QGraphicsItem *item) { return !qgraphicsitem_cast(item)->getTapped(); });