|
|
|
|
@ -181,6 +181,16 @@ void SlideBackEffect::postPaintScreen() |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void SlideBackEffect::prePaintWindow( EffectWindow *w, WindowPrePaintData &data, int time ) |
|
|
|
|
{ |
|
|
|
|
if( motionManager.isManaging( w ) ) |
|
|
|
|
{ |
|
|
|
|
data.setTransformed(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
effects->prePaintWindow( w, data, time ); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void SlideBackEffect::paintWindow( EffectWindow *w, int mask, QRegion region, WindowPaintData &data ) |
|
|
|
|
{ |
|
|
|
|
if( stackingOrderChanged() && ( w == newTopWindow() ) ) |
|
|
|
|
{ |
|
|
|
|
@ -191,36 +201,25 @@ void SlideBackEffect::prePaintWindow( EffectWindow *w, WindowPrePaintData &data, |
|
|
|
|
{ |
|
|
|
|
if( oldStackingOrder.lastIndexOf( tmp ) > oldStackingOrder.lastIndexOf( w ) && isWindowUsable( tmp ) ) |
|
|
|
|
{ |
|
|
|
|
// kDebug() << "screw detected." << "clip:" << data.paint << " clipping:" << tmp->geometry() ;
|
|
|
|
|
PaintClipper::push( data.paint.subtracted( tmp->geometry() ) ); |
|
|
|
|
clippedRegions.prepend( data.paint.subtracted( tmp->geometry() ) ); |
|
|
|
|
kDebug() << "screw detected. region:" << region << "clipping:" << tmp->geometry() ; |
|
|
|
|
PaintClipper::push( region.subtracted( tmp->geometry() ) ); |
|
|
|
|
clippedRegions.prepend( region.subtracted( tmp->geometry() ) ); |
|
|
|
|
// region = region.subtracted( tmp->geometry() );
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
// Add a full repaint to make sure the not painted area is repainted soon
|
|
|
|
|
effects->addRepaintFull(); |
|
|
|
|
// Finally call windowActivated in case a already active window is raised.
|
|
|
|
|
if( !disabled ) |
|
|
|
|
{ |
|
|
|
|
windowActivated( w ); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
if( motionManager.isManaging( w ) ) |
|
|
|
|
{ |
|
|
|
|
data.setTransformed(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
effects->prePaintWindow( w, data, time ); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void SlideBackEffect::paintWindow( EffectWindow *w, int mask, QRegion region, WindowPaintData &data ) |
|
|
|
|
{ |
|
|
|
|
if( motionManager.isManaging( w ) ) |
|
|
|
|
{ |
|
|
|
|
motionManager.apply( w, data ); |
|
|
|
|
} |
|
|
|
|
effects->paintWindow( w, mask, region, data ); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void SlideBackEffect::postPaintWindow( EffectWindow* w ) |
|
|
|
|
{ |
|
|
|
|
if( !clippedRegions.isEmpty() ) |
|
|
|
|
{ |
|
|
|
|
foreach( const QRegion ®ion, clippedRegions ) |
|
|
|
|
@ -229,6 +228,10 @@ void SlideBackEffect::postPaintWindow( EffectWindow* w ) |
|
|
|
|
} |
|
|
|
|
clippedRegions.clear(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void SlideBackEffect::postPaintWindow( EffectWindow* w ) |
|
|
|
|
{ |
|
|
|
|
if( motionManager.isManaging( w ) ) |
|
|
|
|
{ |
|
|
|
|
if( destinationList.contains( w ) ) |
|
|
|
|
|