Make parts of the shadow texture that are under windows transparent.
Fixes translucent windows graphical glitch. svn path=/trunk/KDE/kdebase/workspace/; revision=889744
This commit is contained in:
parent
117cb5719f
commit
2385ed545b
1 changed files with 8 additions and 0 deletions
|
@ -193,6 +193,7 @@ QList< QList<QImage> > OxygenFactory::shadowTextures()
|
|||
shadow->fill( Qt::transparent );
|
||||
QRadialGradient rg( size, size, size );
|
||||
QColor c = color;
|
||||
c.setAlpha( 0 ); rg.setColorAt( 4/size, c );
|
||||
c.setAlpha( 255 ); rg.setColorAt( 4.4/size, c );
|
||||
c = glow;
|
||||
c.setAlpha( 220 ); rg.setColorAt( 4.5/size, c );
|
||||
|
@ -207,6 +208,7 @@ QList< QList<QImage> > OxygenFactory::shadowTextures()
|
|||
|
||||
rg = QRadialGradient( size, size, size );
|
||||
c = color;
|
||||
c.setAlpha( 0 ); rg.setColorAt( 4/size, c );
|
||||
c.setAlpha( 255 ); rg.setColorAt( 4.4/size, c );
|
||||
c = glow2;
|
||||
c.setAlpha( 0.58*255 ); rg.setColorAt( 4.5/size, c );
|
||||
|
@ -319,6 +321,12 @@ QList< QList<QImage> > OxygenFactory::shadowTextures()
|
|||
p.setPen(QPen(lg, 0.8));
|
||||
p.drawEllipse(QRectF(size-4, size-4, 8, 8));
|
||||
|
||||
// cut out the part of the texture that is under the window
|
||||
p.setCompositionMode( QPainter::CompositionMode_Xor );
|
||||
p.setBrush( QColor( 0, 0, 0, 255 ));
|
||||
p.setPen( Qt::NoPen );
|
||||
p.drawEllipse(QRectF(size-4, size-4, 8, 8));
|
||||
|
||||
p.end();
|
||||
|
||||
MAKE_TEX( w, h, 0, h+1 ); // corner
|
||||
|
|
Loading…
Reference in a new issue