diff --git a/kdecoration/breeze.h b/kdecoration/breeze.h index 645331ec..24f4bd4b 100644 --- a/kdecoration/breeze.h +++ b/kdecoration/breeze.h @@ -47,7 +47,7 @@ namespace Breeze TitleBar_ButtonSpacing = 2, // shadow dimensions (pixels) - Shadow_Overlap = 2, + Shadow_Overlap = 3, }; diff --git a/kdecoration/breezedecoration.cpp b/kdecoration/breezedecoration.cpp index b38f9b77..156c92ac 100644 --- a/kdecoration/breezedecoration.cpp +++ b/kdecoration/breezedecoration.cpp @@ -640,14 +640,21 @@ namespace Breeze painter.setCompositionMode(QPainter::CompositionMode_Source); painter.fillRect( image.rect(), radialGradient); + // contrast pixel QRectF innerRect = QRectF( g_shadowSize - shadowOffset - Metrics::Shadow_Overlap, g_shadowSize - shadowOffset - Metrics::Shadow_Overlap, - shadowOffset + 2*Metrics::Shadow_Overlap,shadowOffset + 2*Metrics::Shadow_Overlap ) - .adjusted( -0.5, -0.5, 0.5, 0.5 ); + shadowOffset + 2*Metrics::Shadow_Overlap,shadowOffset + 2*Metrics::Shadow_Overlap ); painter.setPen( gradientStopColor( g_shadowColor, g_shadowStrength ) ); painter.setBrush( Qt::NoBrush ); painter.drawRoundedRect( innerRect, 2.5, 2.5 ); + + // mask out inner rect + painter.setPen( Qt::NoPen ); + painter.setBrush( Qt::black ); + painter.setCompositionMode(QPainter::CompositionMode_DestinationOut ); + painter.drawRoundedRect( innerRect, 2.5, 2.5 ); + painter.end(); g_sShadow = QSharedPointer::create();