[compiz] Paint chanegs block dbus and fuse plugins

Mike Dransfield mike at blueroot.co.uk
Mon Apr 9 09:26:13 PDT 2007


I was writing a simple plugin a while ago which just
sets the paint values on inactive windows.  The plugin is
very simple and the main part is below.

When I load this plugin it blocks dbus and fuse plugins
so that they only reply to requests when the active window
changes.

Is there anything obvious here that would cause that?


static Bool
inactivePaintWindow (CompWindow *w,
             const WindowPaintAttrib *attrib,
             const CompTransform *transform,
             Region region,
             unsigned int mask)
{
    Bool          status;
    INACTIVE_SCREEN (w->screen);
    INACTIVE_WINDOW (w);

    WindowPaintAttrib fAttrib = *attrib;

    if (iw->managed
    && w->mapNum
    && (w->screen->display->activeWindow != w->id))
    {
    Bool painted = FALSE;
    if (fAttrib.opacity != iw->inactiveOpacity)
    {
        fAttrib.opacity = iw->inactiveOpacity;
        painted = TRUE;
    }
    if (fAttrib.brightness != iw->inactiveBrightness)
    {
        fAttrib.brightness = iw->inactiveBrightness;
        painted = TRUE;
    }
    if (fAttrib.saturation != iw->inactiveSaturation)
    {
        fAttrib.saturation = iw->inactiveSaturation;
        painted = TRUE;
    }

    if (painted)
        addWindowDamage (w);
    }

    UNWRAP (is, w->screen, paintWindow);
    status = (*w->screen->paintWindow) (w, &fAttrib, transform, region, 
mask);
    WRAP (is, w->screen, paintWindow, inactivePaintWindow);

    return status;
}



More information about the compiz mailing list