From f73bb164ad0308d002a91f7a7fd0427b30bd5ee5 Mon Sep 17 00:00:00 2001 From: Timothy Flynn Date: Fri, 4 Jun 2021 14:28:27 -0400 Subject: [PATCH] LibCards: Draw card stack background when the entire stack is moving The stack background should be painted when the entire stack is being dragged, rather than just the top card. Fixes #7786. Regressed in 2b762ef94075b8a6e1ae8dd61e535b6b6cf7c064. --- Userland/Libraries/LibCards/CardStack.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Userland/Libraries/LibCards/CardStack.cpp b/Userland/Libraries/LibCards/CardStack.cpp index aa0c7869f7..a06127fa45 100644 --- a/Userland/Libraries/LibCards/CardStack.cpp +++ b/Userland/Libraries/LibCards/CardStack.cpp @@ -45,9 +45,13 @@ void CardStack::clear() void CardStack::draw(GUI::Painter& painter, const Gfx::Color& background_color) { auto draw_background_if_empty = [&]() { + size_t number_of_moving_cards = 0; + for (const auto& card : m_stack) + number_of_moving_cards += card.is_moving(); + if (m_associated_stack && !m_associated_stack->is_empty()) return false; - if (!is_empty() && !(m_stack.size() == 1 && peek().is_moving())) + if (!is_empty() && (m_stack.size() != number_of_moving_cards)) return false; painter.fill_rect_with_rounded_corners(m_base, background_color.darkened(0.5), Card::card_radius); painter.fill_rect_with_rounded_corners(m_base.shrunken(2, 2), background_color, Card::card_radius - 1);