From fb3e74615d05b357af9db84c8b086ff75753ab0b Mon Sep 17 00:00:00 2001 From: Wladimir Leuschner Date: Tue, 17 Dec 2024 15:33:05 +0100 Subject: [PATCH] QWindows11Style: Align QSpinBox rect to match QLineEdits rect The content rects for QSpinBoxes were smaller than QLineEdits rects for UI elements that should have the same size. This patch increases the content rect for QSpinBoxes. Task-number: QTBUG-132261 Change-Id: I59e752b719399c5845ab3ef81c6e271deda16273 Reviewed-by: Christian Ehrlicher (cherry picked from commit a53e095882551caf3684a1f6a205b6c7d76a8913) Reviewed-by: Qt Cherry-pick Bot (cherry picked from commit 4c2f439001f49c9aa380d16f0e1fa7e574e03fe8) --- src/plugins/styles/modernwindows/qwindows11style.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/plugins/styles/modernwindows/qwindows11style.cpp b/src/plugins/styles/modernwindows/qwindows11style.cpp index 3cfff1125f4..5a177e6eb16 100644 --- a/src/plugins/styles/modernwindows/qwindows11style.cpp +++ b/src/plugins/styles/modernwindows/qwindows11style.cpp @@ -250,20 +250,24 @@ void QWindows11Style::drawComplexControl(ComplexControl control, const QStyleOpt case CC_SpinBox: if (const QStyleOptionSpinBox *sb = qstyleoption_cast(option)) { if (sb->frame && (sub & SC_SpinBoxFrame)) { + const qreal sublineOffset = secondLevelRoundingRadius + 2.0; painter->save(); painter->setClipRect(option->rect.adjusted(-2, -2, 2, 2)); painter->setPen(editSublineColor(option, colorSchemeIndex)); - painter->drawLine(option->rect.bottomLeft() + QPointF(7,-0.5), option->rect.bottomRight() + QPointF(-7,-0.5)); + painter->drawLine(option->rect.bottomLeft() + QPointF(sublineOffset, 0.5), + option->rect.bottomRight() + QPointF(-sublineOffset, 0.5)); painter->restore(); } - const QRectF frameRect = QRectF(option->rect).adjusted(2.5, 2.5, -2.5, -2.5); + const QRectF frameRect = QRectF(option->rect).marginsRemoved(QMarginsF(1.5, 1.5, 1.5, 1.5)); const QBrush fillBrush = option->palette.brush(QPalette::Base); painter->setBrush(fillBrush); - painter->setPen(QPen(highContrastTheme == true ? sb->palette.buttonText().color() : WINUI3Colors[colorSchemeIndex][frameColorLight])); + painter->setPen(QPen(highContrastTheme == true ? sb->palette.buttonText().color() + : WINUI3Colors[colorSchemeIndex][frameColorLight])); painter->drawRoundedRect(frameRect, secondLevelRoundingRadius, secondLevelRoundingRadius); const QPoint mousePos = widget ? widget->mapFromGlobal(QCursor::pos()) : QPoint(); if (sub & SC_SpinBoxEditField) { - const QRect rect = proxy()->subControlRect(CC_SpinBox, option, SC_SpinBoxEditField, widget).adjusted(0, 0, 0, 1); + const QRect rect = proxy()->subControlRect(CC_SpinBox, option, SC_SpinBoxEditField, + widget).adjusted(0, 0, 0, 1); if (!(state & State_HasFocus) && rect.contains(mousePos)) { const QColor fillColor = WINUI3Colors[colorSchemeIndex][subtleHighlightColor]; painter->setPen(Qt::NoPen);