[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