From 5a955fbb97ce1cec7aae1337df117c916f94db09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20K=C3=BCgler?= Date: Tue, 29 Apr 2008 16:20:48 +0000 Subject: [PATCH] Only scale in normal windows (!w->isSpecialWindow()). svn path=/trunk/KDE/kdebase/workspace/; revision=802484 --- effects/scalein.cpp | 10 +++++++++- effects/scalein.h | 1 + 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/effects/scalein.cpp b/effects/scalein.cpp index 2a3c19b9a7..e6f65f5348 100644 --- a/effects/scalein.cpp +++ b/effects/scalein.cpp @@ -47,7 +47,7 @@ void ScaleInEffect::prePaintWindow( EffectWindow* w, WindowPrePaintData& data, i void ScaleInEffect::paintWindow( EffectWindow* w, int mask, QRegion region, WindowPaintData& data ) { - if( windows.contains( w )) + if( windows.contains( w ) && isScaleWindow( w ) ) { data.xScale *= windows[ w ]; data.yScale *= windows[ w ]; @@ -57,6 +57,14 @@ void ScaleInEffect::paintWindow( EffectWindow* w, int mask, QRegion region, Wind effects->paintWindow( w, mask, region, data ); } +bool ScaleInEffect::isScaleWindow( EffectWindow* w ) + { + // TODO: isSpecialWindow is rather generic, maybe tell windowtypes separately? + if ( w->isPopupMenu() || w->isSpecialWindow() ) + return false; + return true; + } + void ScaleInEffect::postPaintWindow( EffectWindow* w ) { if( windows.contains( w )) diff --git a/effects/scalein.h b/effects/scalein.h index 5ae0c08c10..693290fa41 100644 --- a/effects/scalein.h +++ b/effects/scalein.h @@ -38,6 +38,7 @@ class ScaleInEffect virtual void windowAdded( EffectWindow* c ); virtual void windowClosed( EffectWindow* c ); private: + bool isScaleWindow ( EffectWindow* w ); QHash< const EffectWindow*, double > windows; };