diff --git a/effects/slidingpopups/slidingpopups.cpp b/effects/slidingpopups/slidingpopups.cpp index 41276c7878..a4932fa70c 100644 --- a/effects/slidingpopups/slidingpopups.cpp +++ b/effects/slidingpopups/slidingpopups.cpp @@ -61,9 +61,13 @@ void SlidingPopupsEffect::prePaintWindow( EffectWindow* w, WindowPrePaintData& d } else if( mDisappearingWindows.contains( w ) ) { + mDisappearingWindows[ w ].addTime( time ); if( mDisappearingWindows[ w ].value() < 1 ) + { data.setTransformed(); + w->enablePainting( EffectWindow::PAINT_DISABLED_BY_DELETE ); + } else { mDisappearingWindows.remove( w ); @@ -90,7 +94,6 @@ void SlidingPopupsEffect::paintWindow( EffectWindow* w, int mask, QRegion region animating = true; } - if( animating ) { const qreal progress = appearing?(1 - mAppearingWindows[ w ].value()):mDisappearingWindows[ w ].value(); @@ -168,6 +171,7 @@ void SlidingPopupsEffect::propertyNotify( EffectWindow* w, long a ) return; QByteArray data = w->readProperty( mAtom, mAtom, 32 ); + if( data.length() < 1 ) return; long* d = reinterpret_cast< long* >( data.data());