From 382505e22f9037a13f793786c2b12c3f68bc2724 Mon Sep 17 00:00:00 2001 From: Wladimir Leuschner Date: Tue, 19 Mar 2024 16:46:43 +0100 Subject: [PATCH] QWindows11Style: Add offset for decoration in QComboBoxPrivateContainer Pick-to: 6.7.0 Change-Id: Ib9043e1b3041c88d757ddd5ada6c0edcf2bb6129 Reviewed-by: Oliver Wolff Reviewed-by: Qt CI Bot Reviewed-by: Friedemann Kleint (cherry picked from commit 587003c3ccf6f8abab9aa6e8131f5ff6ce368d8a) Reviewed-by: Qt Cherry-pick Bot --- .../styles/modernwindows/qwindows11style.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/plugins/styles/modernwindows/qwindows11style.cpp b/src/plugins/styles/modernwindows/qwindows11style.cpp index 5bc714dfa27..80a3bb96553 100644 --- a/src/plugins/styles/modernwindows/qwindows11style.cpp +++ b/src/plugins/styles/modernwindows/qwindows11style.cpp @@ -1713,11 +1713,17 @@ QRect QWindows11Style::subElementRect(QStyle::SubElement element, const QStyleOp ret = option->rect.adjusted(8,0,-8,0); break; case QStyle::SE_ItemViewItemText: - if (widget && widget->parentWidget() && - widget->parentWidget()->inherits("QComboBoxPrivateContainer")) - ret = option->rect.adjusted(5,0,-5,0); - else + if (const auto *item = qstyleoption_cast(option)) { + const int decorationOffset = item->features.testFlag(QStyleOptionViewItem::HasDecoration) ? item->decorationSize.width() : 0; + if (widget && widget->parentWidget() && + widget->parentWidget()->inherits("QComboBoxPrivateContainer")) { + ret = option->rect.adjusted(decorationOffset + 5, 0, -5, 0); + } else { + ret = QWindowsVistaStyle::subElementRect(element, option, widget); + } + } else { ret = QWindowsVistaStyle::subElementRect(element, option, widget); + } break; default: ret = QWindowsVistaStyle::subElementRect(element, option, widget);