When we have a shaded window we have to create the four decoration quads manually. For each deco pixmap there has to be one quad of same size.
This requires some testing and will be backported in two or three weeks. BUG: 195593 svn path=/trunk/KDE/kdebase/workspace/; revision=1004690
This commit is contained in:
parent
1e1cf86dc7
commit
1b24e5bf92
1 changed files with 12 additions and 1 deletions
13
scene.cpp
13
scene.cpp
|
@ -485,7 +485,18 @@ WindowQuadList Scene::Window::buildQuads( bool force ) const
|
|||
QRegion decoration = (client && Workspace::self()->decorationHasAlpha() ?
|
||||
QRegion(client->decorationRect()) : shape()) - contents;
|
||||
ret = makeQuads( WindowQuadContents, contents );
|
||||
ret += makeQuads( WindowQuadDecoration, decoration );
|
||||
if( (client && !client->isShade()) || !client )
|
||||
ret += makeQuads( WindowQuadDecoration, decoration );
|
||||
else
|
||||
{
|
||||
// this is a shaded client, we have to create four decoartion quads
|
||||
QRect left, top, right, bottom;
|
||||
client->layoutDecorationRects( left, top, right, bottom, Client::WindowRelative );
|
||||
ret += makeQuads( WindowQuadDecoration, top );
|
||||
ret += makeQuads( WindowQuadDecoration, bottom );
|
||||
ret += makeQuads( WindowQuadDecoration, left );
|
||||
ret += makeQuads( WindowQuadDecoration, right );
|
||||
}
|
||||
}
|
||||
effects->buildQuads( static_cast<Client*>( toplevel )->effectWindow(), ret );
|
||||
cached_quad_list = new WindowQuadList( ret );
|
||||
|
|
Loading…
Reference in a new issue