=== modified file 'plugins/composite/src/window.cpp' --- plugins/composite/src/window.cpp 2011-09-27 11:13:56 +0000 +++ plugins/composite/src/window.cpp 2011-09-09 15:18:27 +0000 @@ -268,7 +268,7 @@ return; if (priv->window->shaded () || - (priv->window->isViewable ())) + (priv->window->isViewable () && priv->damaged)) { int x1, x2, y1, y2; @@ -339,7 +339,7 @@ return; if (priv->window->shaded () || force || - (priv->window->isViewable ())) + (priv->window->isViewable () && priv->damaged)) { int border = priv->window->geometry ().border (); @@ -561,7 +561,7 @@ CompSize size = CompSize (); - if (window->shaded () || (window->isViewable ())) + if (window->shaded () || (window->isViewable () && damaged)) { int x, y, x1, x2, y1, y2; @@ -618,7 +618,7 @@ void PrivateCompositeWindow::moveNotify (int dx, int dy, bool now) { - if (window->shaded () || (window->isViewable ())) + if (window->shaded () || (window->isViewable () && damaged)) { int x, y, x1, x2, y1, y2; === modified file 'plugins/opengl/src/paint.cpp' --- plugins/opengl/src/paint.cpp 2011-09-27 11:13:56 +0000 +++ plugins/opengl/src/paint.cpp 2011-09-13 02:26:10 +0000 @@ -241,15 +241,8 @@ if (!w->shaded ()) { - /* Non-damaged windows don't have valid pixmap - * contents and we aren't displaying them yet - * so don't factor them into occlusion detection */ - if (!gw->priv->cWindow->damaged ()) - { - gw->priv->clip = region; - continue; - } - if (!w->isViewable ()) + if (!w->isViewable () || + !CompositeWindow::get (w)->damaged ()) continue; } @@ -329,7 +322,8 @@ if (!w->shaded ()) { - if (!w->isViewable ()) + if (!w->isViewable () || + !CompositeWindow::get (w)->damaged ()) continue; } @@ -1177,8 +1171,7 @@ if (reg.isEmpty ()) return true; - if (!priv->window->isViewable () || - !priv->cWindow->damaged ()) + if (!priv->window->isViewable ()) return true; if (priv->textures.empty () && !bind ())