| 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 |