Do not release the bound pixmap every time the decoration get's updated. That is the reason why effects were slow when active client changed. Additional do a XSync when the decoration pixmap is painted. That ensures that the pixmap is painted before the texture from pixmap is done.
BUG: 191694 svn path=/trunk/KDE/kdebase/workspace/; revision=969647
This commit is contained in:
parent
1c01bd3337
commit
c561207946
2 changed files with 3 additions and 5 deletions
|
@ -512,6 +512,8 @@ void Client::ensureDecorationPixmapsPainted()
|
|||
XFreeGC( display(), gc );
|
||||
}
|
||||
}
|
||||
else
|
||||
XSync( display(), false );
|
||||
}
|
||||
|
||||
void Client::repaintDecorationPixmap( QPixmap& pix, const QRect& r, const QPixmap& src, QRegion reg )
|
||||
|
|
|
@ -1530,12 +1530,8 @@ void SceneOpenGL::Window::paintDecoration( const QPixmap* decoration, TextureTyp
|
|||
}
|
||||
else
|
||||
{
|
||||
if( decorationTexture->texture() != None )
|
||||
decorationTexture->release();
|
||||
bool success = decorationTexture->load( decoration->handle(), decoration->size(), decoration->depth() );
|
||||
if( success )
|
||||
toplevel->resetDamage( rect );
|
||||
else
|
||||
if( !success )
|
||||
{
|
||||
kDebug( 1212 ) << "Failed to bind decoartion";
|
||||
return;
|
||||
|
|
Loading…
Reference in a new issue