Reset Repaints on a Toplevel has to include the decoration shadows if used.

svn path=/trunk/KDE/kdebase/workspace/; revision=1006788
This commit is contained in:
Martin Gräßlin 2009-08-04 12:20:33 +00:00
parent c125bbb9a3
commit 47366d5720
2 changed files with 7 additions and 1 deletions

View file

@ -411,7 +411,7 @@ void Workspace::performCompositing()
// TODO I think effects->transformWindowDamage() doesn't need to be called here,
// pre-paint will extend painted window areas as necessary.
repaints_region |= c->repaints().translated( c->pos());
c->resetRepaints( c->rect());
c->resetRepaints( c->decorationRect());
}
QRegion repaints = repaints_region;
// clear all repaints, so that post-pass can add repaints for the next repaint

View file

@ -65,6 +65,7 @@ class Toplevel
virtual QPoint clientPos() const = 0; // inside of geometry()
virtual QSize clientSize() const = 0;
virtual QRect visibleRect() const; // the area the window occupies on the screen
virtual QRect decorationRect() const; // rect including the decoration shadows
// prefer isXXX() instead
// 0 for supported types means default for managed/unmanaged types
@ -245,6 +246,11 @@ inline QRect Toplevel::rect() const
return QRect( 0, 0, width(), height());
}
inline QRect Toplevel::decorationRect() const
{
return rect();
}
inline bool Toplevel::readyForPainting() const
{
return ready_for_painting;