[compiz] Paint chanegs block dbus and fuse plugins

David Reveman davidr at novell.com
Mon Apr 9 10:05:39 PDT 2007


On Mon, 2007-04-09 at 17:26 +0100, Mike Dransfield wrote:
> 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);

This is probably causing the main loop to redraw all the time and never
check for file descriptor changes.

- David



More information about the compiz mailing list