[PATCH] dix: adds support for none root window background

Rami Ylimäki rami.ylimaki at vincit.fi
Tue Nov 2 08:55:12 PDT 2010


  On 10/28/2010 04:57 PM, Tiago Vignatti wrote:
> diff --git a/dix/window.c b/dix/window.c
> index cfebb9d..7a47221 100644
> --- a/dix/window.c
> +++ b/dix/window.c
> @@ -137,6 +137,8 @@ Equipment Corporation.
>    *    ChangeWindowDeviceCursor
>    ******/
>
> +Bool bgNoneRoot = FALSE;
> +
>   static unsigned char _back_lsb[4] = {0x88, 0x22, 0x44, 0x11};
>   static unsigned char _back_msb[4] = {0x11, 0x44, 0x22, 0x88};
>
> @@ -463,6 +465,10 @@ InitRootWindow(WindowPtr pWin)
>       if (party_like_its_1989) {
>           MakeRootTile(pWin);
>           backFlag |= CWBackPixmap;
> +    } else if (pScreen->canDoBGNoneRoot&&  bgNoneRoot) {
> +        pWin->backgroundState = XaceBackgroundNoneState(pWin);
> +        pWin->background.pixel = pScreen->whitePixel;
> +        backFlag |= CWBackPixmap;
>       } else {
>   	if (whiteRoot)
>               pWin->background.pixel = pScreen->whitePixel;

I think this part should be harmonized with ChangeWindowAttributes. It 
should be possible to set the root window background to None from 
clients also. Currently is seems that MakeRootTile is enforced in 
ChangeWindowAttributes even though I can't find justification for that.

 From Xlib Programming manual 3rd edition, section "4.3.1.1 
background_pixmap":
     Changing the background_pixmap attribute of the root window to None 
or ParentRelative restores the default background, which is 
server-dependent.

In my opinion the command line parameters should be taken into account 
in ChangeWindowAttributes as well so that MakeRootTile is not enforced 
there.

With that change:
     Reviewed-by: Rami Ylimäki <rami.ylimaki at vincit.fi>



More information about the xorg-devel mailing list