Re: pseudo transparency



On Fri, Jan 11, 2002 at 02:49:28PM -0500, Owen Taylor wrote:
> 
> Olivier Chapuis <olivier chapuis free fr> writes:
> 
> > About the E method. Here there is a de facto standard which
> > uses the ESETROOT_PMAP_ID and the _XROOTPMAP_ID atoms. Maybe,
> > this can be documented in the wm-spec? If I well understand
> > this method, applications should use the _XROOTPMAP_ID and
> > setroot programs should destroy the pixmap if
> > 	ESETROOT_PMAP_ID == _XROOTPMAP_ID
> > before setting the background with its own pixmap (and
> > then set _XROOTPMAP_ID and also ESETROOT_PMAP_ID if its
> > own pixmap can be destroyed). That's it?
> 
> A program that wants to set the background should:
> 
>  - Create a persistant pixmap by calling to the server with:
> 
>     dpy = XOpenDisplay(display_name);
>     XSetCloseDownDisplay (dpy, RetainPixmap);
>     pmap = XCreatePixmap (dpy, DefaultRootWindow (dpy), width, height,
>                            DefaultDepthOfScreen (DefaultScreenOfDisplay (dpy)));
>     XCloseDisplay (dpy)
> 
>  - Grab the server
> 
>  - See if ESETROOT_PMAP_ID is set
>  - If so, call XKillClient(xdisplay, *(Pixmap*)data_esetroot)
>  - Change ESETROOT_PMAP_ID and _XROOTPMAP_ID to point to the
>    new pixmap
>  - Set the pixmap as the background for the root window
> 
>  - Ungrab the server
>

Thanks Owen and Hello Michael (I do not know if you monitor
the wm-spec list).

I've take a look at the Esetroot source code (0.9.1) and it
does not grab/ungrab the server. This cause a program (e.g.,
rxvt) which use parental relativity for pseudo-transparency
and which monitor _XROOTPMAP_ID for background update to fail
to update its background (as it receives the _XROOTPMAP_ID
property before the background change).
Moreover, there are surely other good reason for this
grab/ungrab.

Regards, Olivier



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]