From cf0571bb49b255cb8056da1ea5f6d41e37eb834c Mon Sep 17 00:00:00 2001 From: Ulrich Sibiller Date: Sun, 1 Sep 2019 14:57:27 +0200 Subject: NXwindow.c: call InitRootWindow from dix --- nx-X11/programs/Xserver/dix/window.c | 6 ++- nx-X11/programs/Xserver/hw/nxagent/NXwindow.c | 57 +++++---------------------- nx-X11/programs/Xserver/hw/nxagent/Window.c | 4 ++ 3 files changed, 18 insertions(+), 49 deletions(-) (limited to 'nx-X11/programs/Xserver') diff --git a/nx-X11/programs/Xserver/dix/window.c b/nx-X11/programs/Xserver/dix/window.c index a35e79c11..04e0a2d05 100644 --- a/nx-X11/programs/Xserver/dix/window.c +++ b/nx-X11/programs/Xserver/dix/window.c @@ -497,9 +497,12 @@ CreateRootWindow(ScreenPtr pScreen) return TRUE; } -#ifndef NXAGENT_SERVER void +#ifdef NXAGENT_SERVER +xorg_InitRootWindow(WindowPtr pWin) +#else InitRootWindow(WindowPtr pWin) +#endif { ScreenPtr pScreen = pWin->drawable.pScreen; int backFlag = CWBorderPixel | CWCursor | CWBackingStore; @@ -531,7 +534,6 @@ InitRootWindow(WindowPtr pWin) MapWindow(pWin, serverClient); } -#endif /* NXAGENT_SERVER */ /* Set the region to the intersection of the rectangle and the * window's winSize. The window is typically the parent of the diff --git a/nx-X11/programs/Xserver/hw/nxagent/NXwindow.c b/nx-X11/programs/Xserver/hw/nxagent/NXwindow.c index 77ee97f8a..bf1466e68 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/NXwindow.c +++ b/nx-X11/programs/Xserver/hw/nxagent/NXwindow.c @@ -132,24 +132,6 @@ extern void nxagentSetVersionProperty(WindowPtr pWin); void InitRootWindow(WindowPtr pWin) { - ScreenPtr pScreen = pWin->drawable.pScreen; - int backFlag = CWBorderPixel | CWCursor | CWBackingStore; - - #ifdef TEST - fprintf(stderr, "InitRootWindow: Called for window at [%p][%ld] with parent [%p].\n", - (void *) pWin, nxagentWindowPriv(pWin)->window, (void *) pWin -> parent); - #endif - - if (nxagentOption(Rootless)) - { - #ifdef TEST - fprintf(stderr, "InitRootWindow: Assigned agent root to window at [%p][%ld] with parent [%p].\n", - (void *) pWin, nxagentWindowPriv(pWin)->window, (void *) pWin -> parent); - #endif - - nxagentRootlessWindow = pWin; - } - /* * A root window is created for each screen by main * and the pointer is saved in screenInfo.screens as @@ -164,36 +146,17 @@ InitRootWindow(WindowPtr pWin) * if you prefer) fits in the big picture. */ - #ifdef TEST - fprintf(stderr, "InitRootWindow: Going to create window as root at [%p][%ld] with parent [%p].\n", - (void *) pWin, nxagentWindowPriv(pWin)->window, (void *) pWin -> parent); - #endif - - if (!(*pScreen->CreateWindow)(pWin)) - return; /* XXX */ - - #ifdef TEST - fprintf(stderr, "InitRootWindow: Created window as root at [%p][%ld] with parent [%p].\n", - (void *) pWin, nxagentWindowPriv(pWin)->window, (void *) pWin -> parent); - #endif - - (*pScreen->PositionWindow)(pWin, 0, 0); - - pWin->cursorIsNone = FALSE; - pWin->optional->cursor = rootCursor; - rootCursor->refcnt++; - - if (blackRoot) - pWin->background.pixel = pScreen->blackPixel; - else - pWin->background.pixel = pScreen->whitePixel; - backFlag |= CWBackPixel; + if (nxagentOption(Rootless)) + { + #ifdef TEST + fprintf(stderr, "InitRootWindow: Assigned agent root to window at [%p][%ld] with parent [%p].\n", + (void *) pWin, nxagentWindowPriv(pWin)->window, (void *) pWin -> parent); + #endif - pWin->backingStore = defaultBackingStore; - pWin->forcedBS = (defaultBackingStore != NotUseful); + nxagentRootlessWindow = pWin; + } - /* We SHOULD check for an error value here XXX */ - (*pScreen->ChangeWindowAttributes)(pWin, backFlag); + xorg_InitRootWindow(pWin); /* * Map both the root and the default agent window. @@ -214,7 +177,7 @@ InitRootWindow(WindowPtr pWin) char artsd_port[10]; short int nPort = atoi(display) + 7000; sprintf(artsd_port,"%d", nPort); - nxagentPropagateArtsdProperties(pScreen, artsd_port); + nxagentPropagateArtsdProperties(pWin->drawable.pScreen, artsd_port); } #endif diff --git a/nx-X11/programs/Xserver/hw/nxagent/Window.c b/nx-X11/programs/Xserver/hw/nxagent/Window.c index 88110e7dc..ecf662f90 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Window.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Window.c @@ -2538,6 +2538,10 @@ void nxagentMapDefaultWindows(void) WindowPtr pWin = screenInfo.screens[i]->root; ScreenPtr pScreen = pWin -> drawable.pScreen; + /* + * InitRootWindow does that already, but as MapWindow() is + * idempotent we keep it here, too + */ MapWindow(pWin, serverClient); if (nxagentOption(Rootless) == 0) -- cgit v1.2.3