When window shape changes, also cause a workspace repaint, just in case
the change removes part of a window. Also, window repaint is enough,
no need to damage the window contents.


svn path=/branches/KDE/4.1/kdebase/workspace/; revision=866351
This commit is contained in:
Luboš Luňák 2008-09-30 16:46:14 +00:00
parent 5e19cbbc0f
commit fa48c3f1f4
2 changed files with 6 additions and 4 deletions

View file

@ -522,7 +522,10 @@ void Client::updateShape()
// when the decoration calls it or when the decoration is created/destroyed
updateInputShape();
if( compositing())
addDamageFull();
{
addRepaintFull();
addWorkspaceRepaint( geometry()); // in case shape change removes part of this window
}
if( scene != NULL )
scene->windowGeometryShapeChanged( this );
if( effects != NULL )
@ -611,8 +614,6 @@ void Client::setMask( const QRegion& reg, int mode )
XShapeCombineShape( display(), frameId(), ShapeBounding, 0, 0,
shape_helper_window, ShapeBounding, ShapeSet );
}
if( compositing())
addDamageFull();
if( scene != NULL )
scene->windowGeometryShapeChanged( this );
if( effects != NULL )

View file

@ -1670,7 +1670,8 @@ bool Unmanaged::windowEvent( XEvent* e )
if( e->type == Extensions::shapeNotifyEvent() )
{
detectShape( window());
addDamageFull();
addRepaintFull();
addWorkspaceRepaint( geometry()); // in case shape change removes part of this window
if( scene != NULL )
scene->windowGeometryShapeChanged( this );
if( effects != NULL )