Instead always paint root tiled (-retro like), protocol calls
(XSetWindowBackgroundPixmap and related) should behave accordingly when None
is set as background pixmap.

Now, even if the server is started without "-background none", the user can
set the root background to None, which will have the same behaviour as that
option.

Signed-off-by: Tiago Vignatti <[email protected]>
---

It may help you: my test case is using the program below, plus some mixes of
killing forced the server and starting up some basic client to see whether the
root background keeps there or now.

    #include <X11/Xlib.h>

    int main (void) {
        Display *dpy;
        Window w;

        dpy = XOpenDisplay(NULL);
        w = XRootWindow(dpy, DefaultScreen(dpy));

        XSetWindowBackgroundPixmap(dpy, w, None);

        XClearWindow(dpy, w);
        XFlush(dpy);

        XCloseDisplay(dpy);
        return 0;
    }

 dix/window.c |   10 ++++++++--
 1 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/dix/window.c b/dix/window.c
index bfaa6f5..ab62973 100644
--- a/dix/window.c
+++ b/dix/window.c
@@ -1004,8 +1004,14 @@ ChangeWindowAttributes(WindowPtr pWin, Mask vmask, XID 
*vlist, ClientPtr client)
            {
                if (pWin->backgroundState == BackgroundPixmap)
                    (*pScreen->DestroyPixmap)(pWin->background.pixmap);
-               if (!pWin->parent)
-                   MakeRootTile(pWin);
+               if (!pWin->parent) {
+                   if (pScreen->canDoBGNoneRoot) {
+                       bgNoneRoot = TRUE;
+                       pWin->backgroundState = XaceBackgroundNoneState(pWin);
+                       pWin->background.pixel = pScreen->whitePixel;
+                   } else if (party_like_its_1989)
+                       MakeRootTile(pWin);
+               }
                else {
                    pWin->backgroundState = XaceBackgroundNoneState(pWin);
                    pWin->background.pixel = pScreen->whitePixel;
-- 
1.7.0.4

_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to