QMacStyle: Always draw status bar in active state if the window is main.

On OS X, most controls are drawn active or inactive based on their
window's main state, NOT its key ("active" in Qt) state.

Change-Id: If447d0a537bc594978f7202e7888ceacb54ec8fa
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
bb10
Jake Petroules 2014-05-08 01:31:20 -04:00 committed by The Qt Project
parent cfcbb957c7
commit 518d874bc8
1 changed files with 2 additions and 2 deletions

View File

@ -3265,7 +3265,7 @@ void QMacStyle::drawPrimitive(PrimitiveElement pe, const QStyleOption *opt, QPai
case PE_PanelStatusBar: {
// Fill the status bar with the titlebar gradient.
QLinearGradient linearGrad(0, opt->rect.top(), 0, opt->rect.bottom());
if (opt->state & QStyle::State_Active) {
if (w ? qt_macWindowMainWindow(w->window()) : (opt->state & QStyle::State_Active)) {
linearGrad.setColorAt(0, titlebarGradientActiveBegin);
linearGrad.setColorAt(1, titlebarGradientActiveEnd);
} else {
@ -3275,7 +3275,7 @@ void QMacStyle::drawPrimitive(PrimitiveElement pe, const QStyleOption *opt, QPai
p->fillRect(opt->rect, linearGrad);
// Draw the black separator line at the top of the status bar.
if (opt->state & QStyle::State_Active)
if (w ? qt_macWindowMainWindow(w->window()) : (opt->state & QStyle::State_Active))
p->setPen(titlebarSeparatorLineActive);
else
p->setPen(titlebarSeparatorLineInactive);