FreeSpaceBar: Make sure bar size isn't negative

Fixes crash with CD drives.
This commit is contained in:
Jonas Kvinge
2025-06-28 19:33:04 +02:00
parent 09d02c53a3
commit 459eea5bc4

View File

@@ -134,7 +134,7 @@ void FreeSpaceBar::DrawBar(QPainter *p, const QRect r) {
p->setRenderHint(QPainter::Antialiasing, true);
QRect bar_rect(r);
bar_rect.setWidth(static_cast<int>(static_cast<float>(bar_rect.width()) * (static_cast<float>(total_ - free_) / static_cast<float>(total_))));
bar_rect.setWidth(std::max(0, static_cast<int>(static_cast<float>(bar_rect.width()) * (static_cast<float>(total_ - free_) / static_cast<float>(total_)))));
QLinearGradient background_gradient(r.topLeft(), r.bottomLeft());
background_gradient.setColorAt(0, kColorBg1);