QMacStyle: paint PE_PanelScrollArea differently
To make it look more natural (without outline and with proper colors). Otherwise this thing looks bad in both Aqua and Dark themes - can be seen if scrollbars always shown (this option is set in "General" settings). Tried so far: - not to draw this element at all - gives a visible hole in the corner - ask the horizontal bar to render its knob track a bit longer (resetting a clip properly) - gives a weird side-effect when scrolling in Dark mode + unfortunately outline of a track is still visible (it overlaps the vertical bar's track). Alas, good old hardcoded colors/alpha values as a last resort. PE_Frame had -1,-1 adjustment, making a frame line visible in the corner below scrollbars, giving another strange effect. Fixes: QTBUG-106927 Change-Id: Ie0367c3bd6f40b3fa4ca6afac09f27e446fc007d Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
This commit is contained in:
parent
433d711670
commit
a43845b75a
@ -3298,7 +3298,7 @@ void QMacStyle::drawPrimitive(PrimitiveElement pe, const QStyleOption *opt, QPai
|
||||
case PE_Frame: {
|
||||
QPen oldPen = p->pen();
|
||||
p->setPen(opt->palette.base().color().darker(140));
|
||||
p->drawRect(opt->rect.adjusted(0, 0, -1, -1));
|
||||
p->drawRect(opt->rect);
|
||||
p->setPen(opt->palette.base().color().darker(180));
|
||||
p->drawLine(opt->rect.topLeft(), opt->rect.topRight());
|
||||
p->setPen(oldPen);
|
||||
@ -3382,11 +3382,11 @@ void QMacStyle::drawPrimitive(PrimitiveElement pe, const QStyleOption *opt, QPai
|
||||
}
|
||||
break;
|
||||
case PE_PanelScrollAreaCorner: {
|
||||
const QBrush brush(opt->palette.brush(QPalette::Base));
|
||||
p->fillRect(opt->rect, brush);
|
||||
p->setPen(QPen(QColor(217, 217, 217)));
|
||||
p->drawLine(opt->rect.topLeft(), opt->rect.topRight());
|
||||
p->drawLine(opt->rect.topLeft(), opt->rect.bottomLeft());
|
||||
QBrush brush(opt->palette.brush(isDarkMode() ? QPalette::WindowText : QPalette::Base));
|
||||
auto color(brush.color());
|
||||
color.setAlphaF(isDarkMode() ? 0.059 : 0.76);
|
||||
brush.setColor(color);
|
||||
p->fillRect(opt->rect, color);
|
||||
} break;
|
||||
case PE_FrameStatusBarItem:
|
||||
break;
|
||||
|
Loading…
x
Reference in New Issue
Block a user