diff --git a/effects/shadow.cpp b/effects/shadow.cpp index 20e2fa2d73..be016fe431 100644 --- a/effects/shadow.cpp +++ b/effects/shadow.cpp @@ -109,6 +109,14 @@ void ShadowEffect::drawWindow( EffectWindow* w, int mask, QRegion region, Window effects->drawWindow( w, mask, region, data ); } +QRect ShadowEffect::transformWindowDamage( EffectWindow* w, const QRect& r ) + { + if( !useShadow( w )) + return effects->transformWindowDamage( w, r ); + QRect r2 = r | shadowRectangle( r ); + return effects->transformWindowDamage( w, r2 ); + } + void ShadowEffect::windowClosed( EffectWindow* c ) { effects->addRepaint( shadowRectangle( c->geometry() )); diff --git a/effects/shadow.h b/effects/shadow.h index f3a54d8739..84c63c855a 100644 --- a/effects/shadow.h +++ b/effects/shadow.h @@ -38,6 +38,7 @@ class ShadowEffect virtual void drawWindow( EffectWindow* w, int mask, QRegion region, WindowPaintData& data ); virtual void paintScreen( int mask, QRegion region, ScreenPaintData& data ); virtual void windowClosed( EffectWindow* c ); + virtual QRect transformWindowDamage( EffectWindow* w, const QRect& r ); private: void drawShadow( EffectWindow* w, int mask, QRegion region, WindowPaintData& data, bool clip ); void addQuadVertices(QVector& verts, float x1, float y1, float x2, float y2) const;