From a06b26814dccca8bf960960adb80bf1b2be56c35 Mon Sep 17 00:00:00 2001 From: Christian Ehrlicher Date: Sun, 3 Dec 2023 21:41:31 +0100 Subject: [PATCH] QIconLoader::actualSize(): respect entry.scale on returned size entryForSize() might return an entry with a scale != 1 (e.g. when requesting the actual size for 32x32 it might return an entry with size=16 and scale=2) but the returned size is not multiplied with this scale so it returns a wrong size and in the case of QTBUG-114849 to a wrong painting rect. Pick-to: 6.5 Fixes: QTBUG-114849 Change-Id: I311e7401e61425efb20b37d13cc95c4b22d47e76 Reviewed-by: Volker Hilsheimer (cherry picked from commit 7cb25eb33c7875c913b4cb0154afd741e602d8aa) Reviewed-by: Qt Cherry-pick Bot --- src/gui/image/qiconloader.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/image/qiconloader.cpp b/src/gui/image/qiconloader.cpp index 876c3e0f86b..7383528dc60 100644 --- a/src/gui/image/qiconloader.cpp +++ b/src/gui/image/qiconloader.cpp @@ -845,7 +845,7 @@ QSize QIconLoaderEngine::actualSize(const QSize &size, QIcon::Mode mode, } else if (dir.type == QIconDirInfo::Fallback) { return QIcon(entry->filename).actualSize(size, mode, state); } else { - int result = qMin(dir.size, qMin(size.width(), size.height())); + int result = qMin(dir.size * dir.scale, qMin(size.width(), size.height())); return QSize(result, result); } }