04e6c0
From 8a00e31151649ea43f2160f3ea8e72a2ceccf149 Mon Sep 17 00:00:00 2001
04e6c0
From: Kristian <krh@redhat.com>
04e6c0
Date: Fri, 15 Aug 2008 15:15:14 +1000
04e6c0
Subject: [PATCH] Add nr for background=none root
04e6c0
04e6c0
---
04e6c0
 dix/globals.c    |    1 +
04e6c0
 dix/window.c     |   15 ++++++++++-----
04e6c0
 include/opaque.h |    1 +
04e6c0
 os/utils.c       |    3 +++
04e6c0
 4 files changed, 15 insertions(+), 5 deletions(-)
04e6c0
Kristian Høgsberg a7e275
diff --git a/dix/globals.c b/dix/globals.c
c5eb6a
index 7f95eab..db34786 100644
Kristian Høgsberg a7e275
--- a/dix/globals.c
Kristian Høgsberg a7e275
+++ b/dix/globals.c
c5eb6a
@@ -143,6 +143,7 @@ Bool loadableFonts = FALSE;
Kristian Høgsberg a7e275
 CursorPtr rootCursor;
Kristian Høgsberg a7e275
 Bool blackRoot=FALSE;
Kristian Høgsberg a7e275
 Bool whiteRoot=FALSE;
Kristian Høgsberg a7e275
+Bool bgNoneRoot=FALSE;
c5eb6a
 #ifdef XPRINT
c5eb6a
 ClientPtr requestingClient;	/* XXX this should be obsolete now, remove? */
c5eb6a
 #endif
Kristian Høgsberg a7e275
diff --git a/dix/window.c b/dix/window.c
c5eb6a
index 834c26b..0a1d163 100644
Kristian Høgsberg a7e275
--- a/dix/window.c
Kristian Høgsberg a7e275
+++ b/dix/window.c
c5eb6a
@@ -472,17 +472,22 @@ InitRootWindow(WindowPtr pWin)
Kristian Høgsberg a7e275
     pWin->optional->cursor = rootCursor;
Kristian Høgsberg a7e275
     rootCursor->refcnt++;
Kristian Høgsberg a7e275
 
Kristian Høgsberg a7e275
-    if (!blackRoot && !whiteRoot) {
Kristian Høgsberg a7e275
-        MakeRootTile(pWin);
c5eb6a
-        backFlag |= CWBackPixmap;
c5eb6a
+    if (bgNoneRoot) {
c5eb6a
+      pWin->backgroundState = XaceBackgroundNoneState(pWin);
c5eb6a
+      pWin->background.pixel = pScreen->whitePixel;
c5eb6a
+      backFlag |= CWBackPixmap;
Kristian Høgsberg a7e275
     }
Kristian Høgsberg a7e275
-    else {
c5eb6a
+    else if (blackRoot || whiteRoot) {
Kristian Høgsberg a7e275
         if (blackRoot)
Kristian Høgsberg a7e275
             pWin->background.pixel = pScreen->blackPixel;
Kristian Høgsberg a7e275
         else
Kristian Høgsberg a7e275
             pWin->background.pixel = pScreen->whitePixel;
Kristian Høgsberg a7e275
         backFlag |= CWBackPixel;
c5eb6a
-    } 
Kristian Høgsberg a7e275
+    }
c5eb6a
+    else {
Kristian Høgsberg a7e275
+        MakeRootTile(pWin);
Kristian Høgsberg a7e275
+        backFlag |= CWBackPixmap;
c5eb6a
+    }
Kristian Høgsberg a7e275
 
Kristian Høgsberg a7e275
     pWin->backingStore = defaultBackingStore;
c5eb6a
     pWin->forcedBS = (defaultBackingStore != NotUseful);
Kristian Høgsberg a7e275
diff --git a/include/opaque.h b/include/opaque.h
c5eb6a
index 3d19d27..cf5d135 100644
Kristian Høgsberg a7e275
--- a/include/opaque.h
Kristian Høgsberg a7e275
+++ b/include/opaque.h
c5eb6a
@@ -74,6 +74,7 @@ extern Bool defeatAccessControl;
Kristian Høgsberg a7e275
 extern long maxBigRequestSize;
Kristian Høgsberg a7e275
 extern Bool blackRoot;
Kristian Høgsberg a7e275
 extern Bool whiteRoot;
Kristian Høgsberg a7e275
+extern Bool bgNoneRoot;
Kristian Høgsberg a7e275
 
Kristian Høgsberg a7e275
 extern Bool CoreDump;
Kristian Høgsberg a7e275
 
Kristian Høgsberg a7e275
diff --git a/os/utils.c b/os/utils.c
c5eb6a
index d785d46..08337d8 100644
Kristian Høgsberg a7e275
--- a/os/utils.c
Kristian Høgsberg a7e275
+++ b/os/utils.c
c5eb6a
@@ -615,6 +615,7 @@ void UseMsg(void)
Kristian Høgsberg a7e275
 #endif
Kristian Høgsberg a7e275
     ErrorF("-nolisten string       don't listen on protocol\n");
Kristian Høgsberg a7e275
     ErrorF("-noreset               don't reset after last client exists\n");
Kristian Høgsberg a7e275
+    ErrorF("-nr                    create root window with no background\n");
Kristian Høgsberg a7e275
     ErrorF("-reset                 reset after last client exists\n");
Kristian Høgsberg a7e275
     ErrorF("-p #                   screen-saver pattern duration (minutes)\n");
Kristian Høgsberg a7e275
     ErrorF("-pn                    accept failure to listen on all ports\n");
c5eb6a
@@ -986,6 +987,8 @@ ProcessCommandLine(int argc, char *argv[])
Kristian Høgsberg a7e275
 	    defaultBackingStore = WhenMapped;
Kristian Høgsberg a7e275
         else if ( strcmp( argv[i], "-wr") == 0)
Kristian Høgsberg a7e275
             whiteRoot = TRUE;
Kristian Høgsberg a7e275
+        else if ( strcmp( argv[i], "-nr") == 0)
Kristian Høgsberg a7e275
+            bgNoneRoot = TRUE;
Kristian Høgsberg a7e275
         else if ( strcmp( argv[i], "-maxbigreqsize") == 0) {
Kristian Høgsberg a7e275
              if(++i < argc) {
Kristian Høgsberg a7e275
                  long reqSizeArg = atol(argv[i]);
04e6c0
-- 
04e6c0
1.5.5.1
04e6c0