clean dirty rect from repaints_region when updating shadow, skip double resetting of shadow rect
REVIEW: 104028
This commit is contained in:
parent
152b738181
commit
e789daf1bc
2 changed files with 1 additions and 6 deletions
|
@ -214,9 +214,6 @@ void Scene::paintGenericScreen(int orig_mask, ScreenPaintData)
|
||||||
// This has to be done here because many effects schedule a repaint for
|
// This has to be done here because many effects schedule a repaint for
|
||||||
// the next frame within Effects::prePaintWindow.
|
// the next frame within Effects::prePaintWindow.
|
||||||
topw->resetRepaints(topw->decorationRect());
|
topw->resetRepaints(topw->decorationRect());
|
||||||
if (topw->hasShadow()) {
|
|
||||||
topw->resetRepaints(topw->shadow()->shadowRegion().boundingRect());
|
|
||||||
}
|
|
||||||
|
|
||||||
WindowPrePaintData data;
|
WindowPrePaintData data;
|
||||||
data.mask = orig_mask | (w->isOpaque() ? PAINT_WINDOW_OPAQUE : PAINT_WINDOW_TRANSLUCENT);
|
data.mask = orig_mask | (w->isOpaque() ? PAINT_WINDOW_OPAQUE : PAINT_WINDOW_TRANSLUCENT);
|
||||||
|
@ -273,9 +270,6 @@ void Scene::paintSimpleScreen(int orig_mask, QRegion region)
|
||||||
// This has to be done here because many effects schedule a repaint for
|
// This has to be done here because many effects schedule a repaint for
|
||||||
// the next frame within Effects::prePaintWindow.
|
// the next frame within Effects::prePaintWindow.
|
||||||
topw->resetRepaints(topw->decorationRect());
|
topw->resetRepaints(topw->decorationRect());
|
||||||
if (topw->hasShadow()) {
|
|
||||||
topw->resetRepaints(topw->shadow()->shadowRegion().boundingRect());
|
|
||||||
}
|
|
||||||
// Clip out the decoration for opaque windows; the decoration is drawn in the second pass
|
// Clip out the decoration for opaque windows; the decoration is drawn in the second pass
|
||||||
if (w->isOpaque()) {
|
if (w->isOpaque()) {
|
||||||
// the window is fully opaque
|
// the window is fully opaque
|
||||||
|
|
|
@ -366,6 +366,7 @@ void Toplevel::getShadow()
|
||||||
if (hasShadow())
|
if (hasShadow())
|
||||||
dirtyRect |= shadow()->shadowRegion().boundingRect();
|
dirtyRect |= shadow()->shadowRegion().boundingRect();
|
||||||
if (dirtyRect.isValid()) {
|
if (dirtyRect.isValid()) {
|
||||||
|
resetRepaints(dirtyRect);
|
||||||
dirtyRect.translate(pos());
|
dirtyRect.translate(pos());
|
||||||
workspace()->addRepaint(dirtyRect);
|
workspace()->addRepaint(dirtyRect);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue