make sure Shadow X11 property is not set on decorated windows, since it is handled by

the decoration itself (and therefore should not be by kwin).
This commit is contained in:
Hugo Pereira Da Costa 2011-04-04 09:42:11 +02:00
parent a9ce4aa2af
commit 275cf05184
2 changed files with 30 additions and 1 deletions

View file

@ -42,8 +42,12 @@
#include <QtGui/QLabel>
#include <QtGui/QPainter>
#include <QtGui/QBitmap>
#include <QtGui/QX11Info>
#include <QtCore/QObjectList>
#include <X11/Xlib.h>
#include <X11/Xatom.h>
namespace Oxygen
{
@ -59,7 +63,8 @@ namespace Oxygen
_forceActive( false ),
_mouseButton( Qt::NoButton ),
_itemData( this ),
_sourceItem( -1 )
_sourceItem( -1 ),
_shadowAtom( 0 )
{}
//___________________________________________
@ -167,6 +172,9 @@ namespace Oxygen
} else if( hasSizeGrip() ) deleteSizeGrip();
// needs to remove shadow property on window since shadows are handled by the decoration
removeShadowHint();
}
//___________________________________________
@ -1827,4 +1835,18 @@ namespace Oxygen
_sizeGrip = 0;
}
//_________________________________________________________________
void Client::removeShadowHint( void )
{
// do nothing if no window id
if( !windowId() ) return;
// create atom
if( !_shadowAtom )
{ _shadowAtom = XInternAtom( QX11Info::display(), "_KDE_NET_WM_SHADOW", False); }
XDeleteProperty(QX11Info::display(), windowId(), _shadowAtom);
}
}

View file

@ -41,6 +41,7 @@
#include <QtCore/QTextStream>
#include <QtCore/QTimerEvent>
#include <X11/Xdefs.h>
namespace Oxygen
{
@ -398,6 +399,9 @@ namespace Oxygen
//@}
//! remove shadow hint
void removeShadowHint( void );
protected slots:
//! set target item to -1
@ -459,6 +463,9 @@ namespace Oxygen
*/
QBasicTimer _dragStartTimer;
//! shadow atom
Atom _shadowAtom;
};
} // namespace Oxygen