From 9f05419d06c7b906f8e64fe66172531c3cbce954 Mon Sep 17 00:00:00 2001 From: Lucas Murray Date: Fri, 16 Oct 2009 10:20:43 +0000 Subject: [PATCH] Unreference window after the window has been rendered. CCBUG: 209723 svn path=/trunk/KDE/kdebase/workspace/; revision=1036021 --- effects/slidingpopups/slidingpopups.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/effects/slidingpopups/slidingpopups.cpp b/effects/slidingpopups/slidingpopups.cpp index eeba42ae57..88328f9f38 100644 --- a/effects/slidingpopups/slidingpopups.cpp +++ b/effects/slidingpopups/slidingpopups.cpp @@ -70,8 +70,6 @@ void SlidingPopupsEffect::prePaintWindow( EffectWindow* w, WindowPrePaintData& d w->enablePainting( EffectWindow::PAINT_DISABLED_BY_DELETE ); mDisappearingWindows[ w ].addTime( time ); - if( mDisappearingWindows[ w ].value() >= 1 ) - w->unrefWindow(); } effects->prePaintWindow( w, data, time ); } @@ -127,6 +125,8 @@ void SlidingPopupsEffect::postPaintWindow( EffectWindow* w ) if( mAppearingWindows.contains( w ) || mDisappearingWindows.contains( w ) ) w->addRepaintFull(); // trigger next animation repaint effects->postPaintWindow( w ); + if( mDisappearingWindows.contains( w ) && mDisappearingWindows[ w ].value() >= 1 ) + w->unrefWindow(); } void SlidingPopupsEffect::windowAdded( EffectWindow* w )