diff --git a/windec/kdecoration2/breezedecoration.cpp b/windec/kdecoration2/breezedecoration.cpp index 2a421076..9d05e233 100644 --- a/windec/kdecoration2/breezedecoration.cpp +++ b/windec/kdecoration2/breezedecoration.cpp @@ -340,62 +340,29 @@ namespace Breeze } auto decorationShadow = QSharedPointer::create(); decorationShadow->setPadding(QMargins(10, 10, 20, 20)); - decorationShadow->setInnerShadowRect(QRect(20, 20, 20, 20)); + decorationShadow->setInnerShadowRect(QRect(19, 19, 1, 1)); - QImage image(60, 60, QImage::Format_ARGB32_Premultiplied); + // QImage image(60, 60, QImage::Format_ARGB32_Premultiplied); + QImage image(40, 40, QImage::Format_ARGB32_Premultiplied); image.fill(Qt::transparent); - auto gradientStopColor = [](qreal alpha) { - QColor color(35, 38, 41); + auto gradientStopColor = [](QColor color, qreal alpha) { color.setAlphaF(alpha); return color; }; + + const QColor shadowColor( client().data()->palette().color( QPalette::Shadow ) ); + QRadialGradient radialGradient(20, 20, 20); - radialGradient.setColorAt(0.0, gradientStopColor(0.35)); - radialGradient.setColorAt(0.25, gradientStopColor(0.25)); - radialGradient.setColorAt(0.5, gradientStopColor(0.13)); - radialGradient.setColorAt(0.75, gradientStopColor(0.04)); - radialGradient.setColorAt(1.0, gradientStopColor(0.0)); - - QLinearGradient linearGradient; - linearGradient.setColorAt(0.0, gradientStopColor(0.35)); - linearGradient.setColorAt(0.25, gradientStopColor(0.25)); - linearGradient.setColorAt(0.5, gradientStopColor(0.13)); - linearGradient.setColorAt(0.75, gradientStopColor(0.04)); - linearGradient.setColorAt(1.0, gradientStopColor(0.0)); + radialGradient.setColorAt(0.0, gradientStopColor(shadowColor, 0.35)); + radialGradient.setColorAt(0.25, gradientStopColor(shadowColor, 0.25)); + radialGradient.setColorAt(0.5, gradientStopColor(shadowColor, 0.13)); + radialGradient.setColorAt(0.75, gradientStopColor(shadowColor, 0.04)); + radialGradient.setColorAt(1.0, gradientStopColor(shadowColor, 0.0)); QPainter p(&image); p.setCompositionMode(QPainter::CompositionMode_Source); - // topLeft - p.fillRect(QRect(0, 0, 20, 20), radialGradient); - // top - linearGradient.setStart(20, 20); - linearGradient.setFinalStop(20, 0); - p.fillRect(QRect(20, 0, 20, 20), linearGradient); - // topRight - radialGradient.setCenter(40.0, 20.0); - radialGradient.setFocalPoint(40.0, 20.0); - p.fillRect(QRect(40, 0, 20, 20), radialGradient); - // left - linearGradient.setStart(20, 20); - linearGradient.setFinalStop(0, 20); - p.fillRect(QRect(0, 20, 20, 20), linearGradient); - // bottom left - radialGradient.setCenter(20.0, 40.0); - radialGradient.setFocalPoint(20.0, 40.0); - p.fillRect(QRect(0, 40, 20, 20), radialGradient); - // bottom - linearGradient.setStart(20, 40); - linearGradient.setFinalStop(20, 60); - p.fillRect(QRect(20, 40, 20, 20), linearGradient); - // bottom right - radialGradient.setCenter(40.0, 40.0); - radialGradient.setFocalPoint(40.0, 40.0); - p.fillRect(QRect(40, 40, 20, 20), radialGradient); - // right - linearGradient.setStart(40, 20); - linearGradient.setFinalStop(60, 20); - p.fillRect(QRect(40, 20, 20, 20), linearGradient); + p.fillRect(QRect(0, 0, 40, 40), radialGradient); decorationShadow->setShadow(image);