diff --git a/src/plugins/styles/modernwindows/qwindows11style.cpp b/src/plugins/styles/modernwindows/qwindows11style.cpp index 7eefd175448..dbfc42d1c29 100644 --- a/src/plugins/styles/modernwindows/qwindows11style.cpp +++ b/src/plugins/styles/modernwindows/qwindows11style.cpp @@ -251,11 +251,8 @@ void QWindows11Style::drawComplexControl(ComplexControl control, const QStyleOpt if (const QStyleOptionSpinBox *sb = qstyleoption_cast(option)) { if (sb->frame && (sub & SC_SpinBoxFrame)) { painter->save(); - QRegion clipRegion = option->rect; - clipRegion -= option->rect.adjusted(2, 2, -2, -2); - painter->setClipRegion(clipRegion); - QColor lineColor = state & State_HasFocus ? option->palette.accent().color() : QColor(0,0,0); - painter->setPen(QPen(lineColor)); + 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->restore(); } @@ -463,8 +460,7 @@ void QWindows11Style::drawComplexControl(ComplexControl control, const QStyleOpt painter->drawText(rect, QStringLiteral(u"\uE70D"), Qt::AlignVCenter | Qt::AlignHCenter); } if (combobox->editable) { - QColor lineColor = state & State_HasFocus ? option->palette.accent().color() : QColor(0,0,0); - painter->setPen(QPen(lineColor)); + painter->setPen(editSublineColor(option, colorSchemeIndex)); painter->drawLine(rect.bottomLeft() + QPoint(2,1), rect.bottomRight() + QPoint(-2,1)); if (state & State_HasFocus) painter->drawLine(rect.bottomLeft() + QPoint(3,2), rect.bottomRight() + QPoint(-3,2)); @@ -958,11 +954,8 @@ void QWindows11Style::drawPrimitive(PrimitiveElement element, const QStyleOption painter->setBrush(Qt::NoBrush); painter->setPen(highContrastTheme == true ? option->palette.buttonText().color() : QPen(WINUI3Colors[colorSchemeIndex][frameColorLight])); painter->drawRoundedRect(option->rect, secondLevelRoundingRadius, secondLevelRoundingRadius); - QRegion clipRegion = option->rect; - clipRegion -= option->rect.adjusted(2, 2, -2, -2); - painter->setClipRegion(clipRegion); - QColor lineColor = state & State_HasFocus ? option->palette.accent().color() : QColor(0,0,0); - painter->setPen(QPen(lineColor)); + painter->setClipRect(option->rect.adjusted(-2, -2, 2, 2)); + painter->setPen(editSublineColor(option, colorSchemeIndex)); painter->drawLine(option->rect.bottomLeft() + QPointF(1,0.5), option->rect.bottomRight() + QPointF(-1,0.5)); } break; @@ -2337,6 +2330,14 @@ QPen QWindows11Style::buttonLabelPen(const QStyleOption *option, int colorScheme : option->palette.buttonText().color()); } +QColor QWindows11Style::editSublineColor(const QStyleOption *option, int colorSchemeIndex) +{ + const State state = option->state; + return state & State_HasFocus ? option->palette.accent().color() + : (colorSchemeIndex == 0 ? QColor(0x80, 0x80, 0x80) + : QColor(0xa0, 0xa0, 0xa0)); +} + #undef SET_IF_UNRESOLVED QT_END_NAMESPACE diff --git a/src/plugins/styles/modernwindows/qwindows11style_p.h b/src/plugins/styles/modernwindows/qwindows11style_p.h index 05b483ca8cb..35fea6b3a50 100644 --- a/src/plugins/styles/modernwindows/qwindows11style_p.h +++ b/src/plugins/styles/modernwindows/qwindows11style_p.h @@ -55,6 +55,7 @@ protected: private: static inline QBrush buttonFillBrush(const QStyleOption *option); static inline QPen buttonLabelPen(const QStyleOption *option, int colorSchemeIndex); + static inline QColor editSublineColor(const QStyleOption *option, int colorSchemeIndex); private: Q_DISABLE_COPY_MOVE(QWindows11Style)