Don't allow windows to cast shadows on screens they are not on.
BUG: 176018 svn path=/trunk/KDE/kdebase/workspace/; revision=888665
This commit is contained in:
parent
5f835b7c31
commit
2bb64077e7
1 changed files with 10 additions and 0 deletions
|
@ -653,6 +653,16 @@ void ShadowEffect::drawShadowQuadXRender( XRenderPicture *picture, QRect rect, f
|
||||||
|
|
||||||
void ShadowEffect::drawShadow( EffectWindow* window, int mask, QRegion region, const WindowPaintData& data )
|
void ShadowEffect::drawShadow( EffectWindow* window, int mask, QRegion region, const WindowPaintData& data )
|
||||||
{
|
{
|
||||||
|
// Don't allow windows to cast shadows on other displays
|
||||||
|
QRegion clipperGeom;
|
||||||
|
for( int screen = 0; screen < effects->numScreens(); screen++ )
|
||||||
|
{
|
||||||
|
QRect screenGeom = effects->clientArea( ScreenArea, screen, 0 );
|
||||||
|
if( !( window->geometry() & screenGeom ).isNull() )
|
||||||
|
clipperGeom |= screenGeom;
|
||||||
|
}
|
||||||
|
PaintClipper pc( clipperGeom );
|
||||||
|
|
||||||
#ifdef KWIN_HAVE_OPENGL_COMPOSITING
|
#ifdef KWIN_HAVE_OPENGL_COMPOSITING
|
||||||
if( effects->compositingType() == OpenGLCompositing )
|
if( effects->compositingType() == OpenGLCompositing )
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue