blob: 7029841902ae56bf59b65f8e38c3db5088b21b3d [file] [log] [blame]
diff -paur xorg-server-1.10.0.orig/dix/window.c xorg-server-1.10.0.work/dix/window.c
--- xorg-server-1.10.0.orig/dix/window.c 2011-03-18 14:29:26.626498000 -0700
+++ xorg-server-1.10.0.work/dix/window.c 2011-03-18 15:01:39.335910000 -0700
@@ -465,28 +465,21 @@ InitRootWindow(WindowPtr pWin)
pWin->optional->cursor = rootCursor;
rootCursor->refcnt++;
+ pWin->backingStore = defaultBackingStore;
+ pWin->forcedBS = (defaultBackingStore != NotUseful);
if (party_like_its_1989) {
MakeRootTile(pWin);
backFlag |= CWBackPixmap;
+ (*pScreen->ChangeWindowAttributes)(pWin, backFlag);
} else if (pScreen->canDoBGNoneRoot && bgNoneRoot) {
pWin->backgroundState = XaceBackgroundNoneState(pWin);
pWin->background.pixel = pScreen->whitePixel;
backFlag |= CWBackPixmap;
} else {
- pWin->backgroundState = BackgroundPixel;
- if (whiteRoot)
- pWin->background.pixel = pScreen->whitePixel;
- else
- pWin->background.pixel = pScreen->blackPixel;
- backFlag |= CWBackPixel;
+ /* nothing, handled in xf86CreateRootWindow */
}
- pWin->backingStore = defaultBackingStore;
- pWin->forcedBS = (defaultBackingStore != NotUseful);
- /* We SHOULD check for an error value here XXX */
- (*pScreen->ChangeWindowAttributes)(pWin, backFlag);
-
MapWindow(pWin, serverClient);
}
diff -paur xorg-server-1.10.0.orig/hw/xfree86/common/xf86Init.c xorg-server-1.10.0.work/hw/xfree86/common/xf86Init.c
--- xorg-server-1.10.0.orig/hw/xfree86/common/xf86Init.c 2011-03-18 14:29:28.880256000 -0700
+++ xorg-server-1.10.0.work/hw/xfree86/common/xf86Init.c 2011-03-18 14:57:57.403987000 -0700
@@ -60,6 +60,7 @@
#ifdef XFreeXDGA
#include "dgaproc.h"
#endif
+#include "xace.h"
#define XF86_OS_PRIVS
#include "xf86.h"
@@ -242,6 +243,7 @@ xf86CreateRootWindow(WindowPtr pWin)
int ret = TRUE;
int err = Success;
ScreenPtr pScreen = pWin->drawable.pScreen;
+ ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
RootWinPropPtr pProp;
CreateWindowProcPtr CreateWindow = (CreateWindowProcPtr)
dixLookupPrivate(&pScreen->devPrivates, xf86CreateRootWindowKey);
@@ -293,6 +295,15 @@ xf86CreateRootWindow(WindowPtr pWin)
}
}
+ if (pScrn->canDoBGNoneRoot) {
+ pWin->backgroundState = XaceBackgroundNoneState(pWin);
+ pWin->background.pixel = pScreen->whitePixel;
+ pScreen->ChangeWindowAttributes(pWin, CWBackPixmap | CWBorderPixel | CWCursor | CWBackingStore);
+ } else {
+ pWin->background.pixel = pScreen->blackPixel;
+ pScreen->ChangeWindowAttributes(pWin, CWBackPixel | CWBorderPixel | CWCursor | CWBackingStore);
+ }
+
DebugF("xf86CreateRootWindow() returns %d\n", ret);
return ret;
}
diff -paur xorg-server-1.10.0.orig/hw/xfree86/common/xf86str.h xorg-server-1.10.0.work/hw/xfree86/common/xf86str.h
--- xorg-server-1.10.0.orig/hw/xfree86/common/xf86str.h 2011-03-18 14:29:29.018274000 -0700
+++ xorg-server-1.10.0.work/hw/xfree86/common/xf86str.h 2011-03-18 14:57:57.412977000 -0700
@@ -496,7 +496,7 @@ typedef struct _confdrirec {
} confDRIRec, *confDRIPtr;
/* These values should be adjusted when new fields are added to ScrnInfoRec */
-#define NUM_RESERVED_INTS 16
+#define NUM_RESERVED_INTS 15
#define NUM_RESERVED_POINTERS 14
#define NUM_RESERVED_FUNCS 10
@@ -761,6 +761,9 @@ typedef struct _ScrnInfoRec {
ClockRangePtr clockRanges;
int adjustFlags;
+ /* -nr support */
+ int canDoBGNoneRoot;
+
/*
* These can be used when the minor ABI version is incremented.
* The NUM_* parameters must be reduced appropriately to keep the