added support for unshadowed moving windows, slight changes to updates on shapable windows

svn path=/trunk/kdebase/kwin/; revision=383513
This commit is contained in:
Thomas Lübking 2005-01-28 23:28:11 +00:00
parent 926f7e02fd
commit 05eda26865
5 changed files with 9 additions and 6 deletions

View file

@ -354,11 +354,11 @@ void Client::detectNoBorder()
case NET::Dialog :
case NET::Utility :
noborder = false;
setShapable(FALSE);
break;
default:
assert( false );
}
setShapable(FALSE);
}
void Client::updateFrameStrut()
@ -419,18 +419,17 @@ void Client::setUserNoBorder( bool set )
void Client::updateShape()
{
setShapable(TRUE);
if ( shape() )
{
XShapeCombineShape(qt_xdisplay(), frameId(), ShapeBounding,
clientPos().x(), clientPos().y(),
window(), ShapeBounding, ShapeSet);
setShapable(TRUE);
}
else
{
XShapeCombineMask( qt_xdisplay(), frameId(), ShapeBounding, 0, 0,
None, ShapeSet);
setShapable(TRUE);
}
// workaround for #19644 - shaped windows shouldn't have decoration
if( shape() && !noBorder())

View file

@ -2124,7 +2124,7 @@ bool Client::startMoveResize()
initialMoveResizeGeom = moveResizeGeom = geometry();
checkUnrestrictedMoveResize();
// rule out non opaque windows from useless translucency settings, maybe resizes?
if (isResize() && options->removeShadowsOnResize)
if ((isResize() && options->removeShadowsOnResize) || (isMove() && options->removeShadowsOnMove))
setShadowSize(0);
if (rules()->checkMoveResizeMode( options->moveMode ) == Options::Opaque){
savedOpacity_ = opacity_;
@ -2164,7 +2164,7 @@ void Client::leaveMoveResize()
// rule out non opaque windows from useless translucency settings, maybe resizes?
if (rules()->checkMoveResizeMode( options->moveMode ) == Options::Opaque)
setOpacity(true, savedOpacity_);
if (isResize() && options->removeShadowsOnResize)
if ((isResize() && options->removeShadowsOnResize) || (isMove() && options->removeShadowsOnMove))
updateShadowSize();
clearbound();
if (geometryTip)

View file

@ -309,7 +309,9 @@ bool Client::manage( Window w, bool isMapped )
{
updateShape();
}
// else
// setShapable(FALSE);
//CT extra check for stupid jdk 1.3.1. But should make sense in general
// if client has initial state set to Iconic and is transient with a parent
// window that is not Iconic, set init_state to Normal

View file

@ -186,6 +186,7 @@ unsigned long Options::updateSettings()
activeWindowShadowSize = config->readNumEntry("ActiveWindowShadowSize", 100);
inactiveWindowShadowSize = config->readNumEntry("InactiveWindowShadowSize", 100);
dockShadowSize = config->readNumEntry("DockShadowSize", 100);
removeShadowsOnMove = config->readBoolEntry("RemoveShadowsOnMove", true);
removeShadowsOnResize = config->readBoolEntry("RemoveShadowsOnResize", true);
if (resetKompmgr = config->readBoolEntry("ResetKompmgr", false))
config->writeEntry("ResetKompmgr",FALSE);

View file

@ -265,6 +265,7 @@ class Options : public KDecorationOptions
bool translucentMovingWindows;
uint movingWindowOpacity;
bool removeShadowsOnResize;
bool removeShadowsOnMove;
bool translucentDocks;
uint dockOpacity;
bool keepAboveAsActive;