diff --git a/effects/screenedge/screenedgeeffect.cpp b/effects/screenedge/screenedgeeffect.cpp --- a/effects/screenedge/screenedgeeffect.cpp +++ b/effects/screenedge/screenedgeeffect.cpp @@ -308,6 +308,8 @@ { ensureGlowSvg(); + const bool stretchBorder = m_glow->hasElement(QStringLiteral("hint-stretch-borders")); + QPoint pixmapPosition(0, 0); QPixmap l, r, c; switch (border) { @@ -342,11 +344,21 @@ p.begin(&image); if (border == ElectricBottom || border == ElectricTop) { p.drawPixmap(pixmapPosition, l); - p.drawTiledPixmap(QRect(l.width(), pixmapPosition.y(), size.width() - l.width() - r.width(), c.height()), c); + const QRect cRect(l.width(), pixmapPosition.y(), size.width() - l.width() - r.width(), c.height()); + if (stretchBorder) { + p.drawPixmap(cRect, c); + } else { + p.drawTiledPixmap(cRect, c); + } p.drawPixmap(QPoint(size.width() - r.width(), pixmapPosition.y()), r); } else { p.drawPixmap(pixmapPosition, l); - p.drawTiledPixmap(QRect(pixmapPosition.x(), l.height(), c.width(), size.height() - l.height() - r.height()), c); + const QRect cRect(pixmapPosition.x(), l.height(), c.width(), size.height() - l.height() - r.height()); + if (stretchBorder) { + p.drawPixmap(cRect, c); + } else { + p.drawTiledPixmap(cRect, c); + } p.drawPixmap(QPoint(pixmapPosition.x(), size.height() - r.height()), r); } p.end();