Index: kstyle/breezehelper.cpp =================================================================== --- kstyle/breezehelper.cpp +++ kstyle/breezehelper.cpp @@ -534,7 +534,7 @@ if( !outline.isValid() ) return; // adjust rect - QRectF frameRect( rect.adjusted( 1, 1, -1, -1 ) ); + QRectF frameRect( rect ); frameRect.adjust( 0.5, 0.5, -0.5, -0.5 ); // setup painter @@ -546,22 +546,18 @@ { default: case SideLeft: - frameRect.adjust( 0, 1, 0, -1 ); painter->drawLine( frameRect.topRight(), frameRect.bottomRight() ); break; case SideTop: - frameRect.adjust( 1, 0, -1, 0 ); painter->drawLine( frameRect.topLeft(), frameRect.topRight() ); break; case SideRight: - frameRect.adjust( 0, 1, 0, -1 ); painter->drawLine( frameRect.topLeft(), frameRect.bottomLeft() ); break; case SideBottom: - frameRect.adjust( 1, 0, -1, 0 ); painter->drawLine( frameRect.bottomLeft(), frameRect.bottomRight() ); break; Index: kstyle/breezestyle.cpp =================================================================== --- kstyle/breezestyle.cpp +++ kstyle/breezestyle.cpp @@ -397,48 +397,28 @@ { scrollArea->setProperty( PropertyNames::sidePanelView, true ); } // for all side view panels, unbold font (design choice) - if( scrollArea->property( PropertyNames::sidePanelView ).toBool() ) + const bool isSidePanel( scrollArea->property( PropertyNames::sidePanelView ).toBool() ); + if( isSidePanel ) { // upbold list font auto font( scrollArea->font() ); font.setBold( false ); scrollArea->setFont( font ); - // adjust background role - if( !StyleConfigData::sidePanelDrawFrame() ) - { - scrollArea->setBackgroundRole( QPalette::Window ); - scrollArea->setForegroundRole( QPalette::WindowText ); - - if( scrollArea->viewport() ) - { - scrollArea->viewport()->setBackgroundRole( QPalette::Window ); - scrollArea->viewport()->setForegroundRole( QPalette::WindowText ); - } - - // QTreeView animates expanding/collapsing branches. It paints them into a - // temp pixmap whose background is unconditionally filled with the palette's - // *base* color which is usually different from the window's color - // cf. QTreeViewPrivate::renderTreeToPixmapForAnimation() - if ( auto treeView = qobject_cast( scrollArea ) ) { - if (treeView->isAnimated()) { - QPalette pal( treeView->palette() ); - pal.setColor( QPalette::Active, QPalette::Base, treeView->palette().color( treeView->backgroundRole() ) ); - treeView->setPalette(pal); - } - } - } + scrollArea->setBackgroundRole( QPalette::Base ); + scrollArea->setForegroundRole( QPalette::Text ); + scrollArea->setAutoFillBackground(true); } // disable autofill background for flat (== NoFrame) scrollareas, with QPalette::Window as a background // this fixes flat scrollareas placed in a tinted widget, such as groupboxes, tabwidgets or framed dock-widgets - if( !(scrollArea->frameShape() == QFrame::NoFrame || scrollArea->backgroundRole() == QPalette::Window ) ) + if( !(scrollArea->frameShape() == QFrame::NoFrame || scrollArea->backgroundRole() == QPalette::Window || isSidePanel ) ) { return; } // get viewport and check background role auto viewport( scrollArea->viewport() ); - if( !( viewport && viewport->backgroundRole() == QPalette::Window ) ) return; + if( !( viewport && ( viewport->backgroundRole() == QPalette::Window || isSidePanel ) ) ) return; // change viewport autoFill background. // do the same for all children if the background role is QPalette::Window @@ -490,7 +470,8 @@ // frame width case PM_DefaultFrameWidth: if( qobject_cast( widget ) ) return Metrics::Menu_FrameWidth; - if( qobject_cast( widget ) ) return Metrics::LineEdit_FrameWidth; + else if( qobject_cast( widget ) ) return Metrics::LineEdit_FrameWidth; + else if( widget && widget->property( PropertyNames::sidePanelView ).toBool() ) return 0; #if QT_VERSION >= 0x050000 else if( isQtQuickControl( option, widget ) ) {