xnest: record ScreenPtr in XnestScreenRec structure

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
This commit is contained in:
Enrico Weigelt, metux IT consult 2024-06-29 14:50:04 +02:00
parent 4e81519e99
commit a2c656c968
3 changed files with 11 additions and 1 deletions

View File

@ -340,7 +340,7 @@ xnestOpenScreen(ScreenPtr pScreen, int argc, char *argv[])
#define POSITION_OFFSET (pScreen->myNum * (xnestWidth + xnestHeight) / 32) #define POSITION_OFFSET (pScreen->myNum * (xnestWidth + xnestHeight) / 32)
if (xnestDoFullGeneration) { if (xnestDoFullGeneration) {
XnestScreenPtr xnscr = xnestScreenPriv(pScreen); XnestScreenPtr xnscr = xnestAllocScreenPriv(pScreen);
valuemask = CWBackPixel | CWEventMask | CWColormap; valuemask = CWBackPixel | CWEventMask | CWColormap;
attributes.background_pixel = xnestWhitePixel; attributes.background_pixel = xnestWhitePixel;

View File

@ -4,6 +4,12 @@
XnestScreenRec xnestScreens[MAXSCREENS] = { 0 }; XnestScreenRec xnestScreens[MAXSCREENS] = { 0 };
XnestScreenPtr xnestAllocScreenPriv(ScreenPtr pScreen)
{
xnestScreens[pScreen->myNum].pScreen = pScreen;
return &xnestScreens[pScreen->myNum];
}
XnestScreenPtr xnestScreenPriv(ScreenPtr pScreen) XnestScreenPtr xnestScreenPriv(ScreenPtr pScreen)
{ {
return &xnestScreens[pScreen->myNum]; return &xnestScreens[pScreen->myNum];

View File

@ -13,6 +13,7 @@
typedef struct xnest_screen { typedef struct xnest_screen {
Window rootWindow; Window rootWindow;
ScreenPtr pScreen;
} XnestScreenRec, *XnestScreenPtr; } XnestScreenRec, *XnestScreenPtr;
/* retrieve private screen structure by ScreenPtr */ /* retrieve private screen structure by ScreenPtr */
@ -21,4 +22,7 @@ XnestScreenPtr xnestScreenPriv(ScreenPtr pScreen);
/* retrieve private screen structure by global index */ /* retrieve private screen structure by global index */
XnestScreenPtr xnestScreenByIdx(int idx); XnestScreenPtr xnestScreenByIdx(int idx);
/* allocate new private screen structure for ScreenPtr */
XnestScreenPtr xnestAllocScreenPriv(ScreenPtr pScreen);
#endif /* _XSERVER_CALLBACK_PRIV_H */ #endif /* _XSERVER_CALLBACK_PRIV_H */