diff --git a/kdecoration/breezebutton.cpp b/kdecoration/breezebutton.cpp --- a/kdecoration/breezebutton.cpp +++ b/kdecoration/breezebutton.cpp @@ -310,15 +310,31 @@ case DecorationButtonType::KeepAbove: { - painter->drawPolyline( QPolygonF() - << QPointF( 4, 9 ) - << QPointF( 9, 4 ) - << QPointF( 14, 9 ) ); + if (isChecked()) + { - painter->drawPolyline( QPolygonF() - << QPointF( 4, 13 ) - << QPointF( 9, 8 ) - << QPointF( 14, 13 ) ); + painter->drawPolyline( QPolygonF() + << QPointF( 4, 4 ) + << QPointF( 9, 9 ) + << QPointF( 14, 4 ) ); + + painter->drawPolyline( QPolygonF() + << QPointF( 4, 8 ) + << QPointF( 9, 13 ) + << QPointF( 14, 8 ) ); + + } else { + + painter->drawPolyline( QPolygonF() + << QPointF( 4, 9 ) + << QPointF( 9, 4 ) + << QPointF( 14, 9 ) ); + + painter->drawPolyline( QPolygonF() + << QPointF( 4, 13 ) + << QPointF( 9, 8 ) + << QPointF( 14, 13 ) ); + } break; } @@ -368,7 +384,7 @@ return d->titleBarColor(); - } else if( ( type() == DecorationButtonType::KeepBelow || type() == DecorationButtonType::KeepAbove ) && isChecked() ) { + } else if( ( type() == DecorationButtonType::KeepBelow || type() == DecorationButtonType::KeepAbove || type() == DecorationButtonType::Shade ) && isChecked() ) { return d->titleBarColor(); @@ -404,7 +420,7 @@ if( type() == DecorationButtonType::Close ) return c->color( ColorGroup::Warning, ColorRole::Foreground ); else return KColorUtils::mix( d->titleBarColor(), d->fontColor(), 0.3 ); - } else if( ( type() == DecorationButtonType::KeepBelow || type() == DecorationButtonType::KeepAbove ) && isChecked() ) { + } else if( ( type() == DecorationButtonType::KeepBelow || type() == DecorationButtonType::KeepAbove || type() == DecorationButtonType::Shade ) && isChecked() ) { return d->fontColor();