summaryrefslogtreecommitdiffstats
path: root/kwin/geometry.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kwin/geometry.cpp')
-rw-r--r--kwin/geometry.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/kwin/geometry.cpp b/kwin/geometry.cpp
index f531bdfb8..3fd278360 100644
--- a/kwin/geometry.cpp
+++ b/kwin/geometry.cpp
@@ -1063,6 +1063,15 @@ void Client::checkDirection( int new_diff, int old_diff, TQRect& rect, const TQR
rect.moveLeft( area.right() - 5 );
}
}
+ if (!moveResizeMode && options->shadowEnabled(isActive()))
+ {
+ // If the user is manually resizing, let Client::leaveMoveResize()
+ // decide when to redraw the shadow
+ removeShadow();
+ drawIntersectingShadows();
+ if (options->shadowEnabled(isActive()))
+ drawDelayedShadow();
+ }
}
/*!
@@ -2322,6 +2331,7 @@ bool Client::startMoveResize()
}
if ( maximizeMode() != MaximizeRestore )
resetMaximize();
+ removeShadow();
moveResizeMode = true;
workspace()->setClientIsMoving(this);
initialMoveResizeGeom = moveResizeGeom = geometry();
@@ -2390,6 +2400,11 @@ void Client::leaveMoveResize()
moveResizeMode = false;
delete eater;
eater = 0;
+ if (options->shadowEnabled(isActive()))
+ {
+ drawIntersectingShadows();
+ updateOpacityCache();
+ }
}
// This function checks if it actually makes sense to perform a restricted move/resize.