This is more of a strange interaction with the unity plugin's fake minimization workaround than it is a compiz issue. I think the best way to handle this would be to simply skip painting any window marked minimized - eg over here:
/* detect occlusions */
for (rit = pl.rbegin (); rit != pl.rend (); ++rit)
{
w = (*rit);
gw = GLWindow::get (w);
...
/* detect occlusions */
for (rit = pl.rbegin (); rit != pl.rend (); ++rit)
{
w = (*rit);
gw = GLWindow::get (w);
if (w->destroyed ())
continue;
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;
}
/* Some plugins may explicitly inhibit paint of minimized
* windows, just don't paint them at all if they're viewable
* but also minimized */
if (!w->isViewable () ||
+ w->minimized ())
continue;
}
This is more of a strange interaction with the unity plugin's fake minimization workaround than it is a compiz issue. I think the best way to handle this would be to simply skip painting any window marked minimized - eg over here:
/* detect occlusions */
for (rit = pl.rbegin (); rit != pl.rend (); ++rit)
{
w = (*rit);
gw = GLWindow::get (w);
...
/* detect occlusions */
for (rit = pl.rbegin (); rit != pl.rend (); ++rit)
{
w = (*rit);
gw = GLWindow::get (w);
if (w->destroyed ())
continue;
if (!w->shaded ()) >cWindow- >damaged ()) >priv-> clip = region;
{
/* 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-
{
gw-
continue;
}
/* Some plugins may explicitly inhibit paint of minimized
* windows, just don't paint them at all if they're viewable
* but also minimized */
if (!w->isViewable () ||
+ w->minimized ())
continue;
}