Fusion style: Fix drawing mdi close button with dpr != 1.0
Fix the drawing of the SC_TitleBarCloseButton for fractional dpr by only drawing two lines with a width of 2 instead 6 single ones as the single ones might get disturbed due to rounding. Pick-to: 6.8 Fixes: QTBUG-133834 Change-Id: I711cef885ed04fa695c24ee3e536697a0ebb3868 Reviewed-by: Wladimir Leuschner <wladimir.leuschner@qt.io> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> (cherry picked from commit 9b35b477f7d4b37a33204c837309a0ede0101129)
This commit is contained in:
parent
d027d6d9da
commit
753e0032dc
@ -2044,16 +2044,14 @@ void QFusionStyle::drawComplexControl(ComplexControl control, const QStyleOption
|
|||||||
const auto buttonRect = proxy()->subControlRect(CC_TitleBar, titleBar, sc, widget);
|
const auto buttonRect = proxy()->subControlRect(CC_TitleBar, titleBar, sc, widget);
|
||||||
if (buttonRect.isValid()) {
|
if (buttonRect.isValid()) {
|
||||||
qt_fusion_draw_mdibutton(painter, titleBar, buttonRect, isHover(sc), isSunken(sc));
|
qt_fusion_draw_mdibutton(painter, titleBar, buttonRect, isHover(sc), isSunken(sc));
|
||||||
|
QRect rect = buttonRect.marginsRemoved(buttonMargins);
|
||||||
const QRect rect = buttonRect.marginsRemoved(buttonMargins);
|
rect.setWidth((rect.width() / 2) * 2 + 1);
|
||||||
const QLine lines[6] = {{rect.left() + 1, rect.top(), rect.right(), rect.bottom() - 1},
|
rect.setHeight((rect.height() / 2) * 2 + 1);
|
||||||
{rect.left(), rect.top() + 1, rect.right() - 1, rect.bottom()},
|
const QLine lines[2] = { { rect.topLeft(), rect.bottomRight() },
|
||||||
{rect.right() - 1, rect.top(), rect.left(), rect.bottom() - 1},
|
{ rect.topRight(), rect.bottomLeft() }, };
|
||||||
{rect.right(), rect.top() + 1, rect.left() + 1, rect.bottom()},
|
const auto pen = QPen(buttonPaintingsColor, 2);
|
||||||
{rect.left(), rect.top(), rect.right(), rect.bottom()},
|
painter->setPen(pen);
|
||||||
{rect.left(), rect.bottom(), rect.right(), rect.top()}};
|
painter->drawLines(lines, 2);
|
||||||
painter->setPen(buttonPaintingsColor);
|
|
||||||
painter->drawLines(lines, 6);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user