Ignore the frame overlap strut when compositing is disabled, and return

a null rect in transparentRect() when the window is shaded.

svn path=/trunk/KDE/kdebase/workspace/; revision=1056399
This commit is contained in:
Fredrik Höglund 2009-11-30 00:37:52 +00:00
parent eab4dc6ed4
commit 18c0ca2ff5

View file

@ -446,7 +446,11 @@ void Client::layoutDecorationRects(QRect &left, QRect &top, QRect &right, QRect
r.translate(-padding_left, -padding_top); r.translate(-padding_left, -padding_top);
NETStrut strut = info->frameOverlap(); NETStrut strut = info->frameOverlap();
if (strut.left == -1 && strut.top == -1 && strut.right == -1 && strut.bottom == -1)
// Ignore the overlap strut when compositing is disabled
if (!compositing())
strut.left = strut.top = strut.right = strut.bottom = 0;
else if (strut.left == -1 && strut.top == -1 && strut.right == -1 && strut.bottom == -1)
{ {
top = QRect(r.x(), r.y(), r.width(), r.height() / 3); top = QRect(r.x(), r.y(), r.width(), r.height() / 3);
left = QRect(r.x(), r.y() + top.height(), width() / 2, r.height() / 3); left = QRect(r.x(), r.y() + top.height(), width() / 2, r.height() / 3);
@ -593,8 +597,13 @@ void Client::resizeDecorationPixmaps()
QRect Client::transparentRect() const QRect Client::transparentRect() const
{ {
if (isShade())
return QRect();
NETStrut strut = info->frameOverlap(); NETStrut strut = info->frameOverlap();
if (strut.left == -1 && strut.top == -1 && strut.right == -1 && strut.bottom == -1) if (!compositing()) // Ignore the strut when compositing is disabled
strut.left = strut.top = strut.right = strut.bottom = 0;
else if (strut.left == -1 && strut.top == -1 && strut.right == -1 && strut.bottom == -1)
return QRect(); return QRect();
const QRect r = QRect(clientPos(), clientSize()) const QRect r = QRect(clientPos(), clientSize())