Fix regression caused by r889761.

Also fix windows scaling off into nothingness when they do not overlap
another window.

svn path=/trunk/KDE/kdebase/workspace/; revision=889766
icc-effect-5.14.5
Lucas Murray 2008-11-27 15:11:10 +00:00
parent 848b2a936c
commit 1efa1b0376
1 changed files with 9 additions and 2 deletions

View File

@ -739,9 +739,16 @@ void PresentWindowsEffect::calculateWindowTransformationsKompose( EffectWindowLi
void PresentWindowsEffect::calculateWindowTransformationsNatural( EffectWindowList windowlist, int screen )
{
// If windows do not overlap they scale into nothingness, fix by resetting. To reproduce
// just have a single window on a Xinerama screen or have two windows that do not touch.
// TODO: Work out why this happens, is most likely a bug in the manager.
foreach( EffectWindow *w, windowlist )
if( m_motionManager.transformedGeometry( w ) == w->geometry() )
m_motionManager.reset( w );
if( windowlist.count() == 1 )
{ // We can't use the algorithm as it scales the window into nothingness
// Instead just move the window to its original location
{
// Just move the window to its original location to save time
m_motionManager.moveWindow( windowlist[0], windowlist[0]->geometry() );
return;
}