Xnest: fetch root visual ID from screen data

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
This commit is contained in:
Enrico Weigelt, metux IT consult 2024-08-13 20:16:09 +02:00
parent c68ba314db
commit 04c6cc145e

View File

@ -174,6 +174,7 @@ xnestOpenScreen(ScreenPtr pScreen, int argc, char *argv[])
depths[0].vids = calloc(MAXVISUALSPERDEPTH, sizeof(VisualID));
numDepths = 1;
int found_default_visual = 0;
for (i = 0; i < xnestNumVisuals; i++) {
visuals[numVisuals].class = xnestVisuals[i].class;
visuals[numVisuals].bitsPerRGBValue = xnestVisuals[i].bits_per_rgb;
@ -228,6 +229,24 @@ xnestOpenScreen(ScreenPtr pScreen, int argc, char *argv[])
visuals[numVisuals].vid;
depths[depthIndex].numVids++;
if (xnestUserDefaultClass || xnestUserDefaultDepth) {
if ((!xnestDefaultClass || visuals[numVisuals].class == xnestDefaultClass) &&
(!xnestDefaultDepth || visuals[numVisuals].nplanes == xnestDefaultDepth))
{
defaultVisual = visuals[numVisuals].vid;
rootDepth = visuals[numVisuals].nplanes;
found_default_visual = 1;
}
}
else
{
VisualID visual_id = xnestUpstreamInfo.screenInfo->root_visual;
if (visual_id == xnestVisuals[i].visualid) {
defaultVisual = visuals[numVisuals].vid;
rootDepth = visuals[numVisuals].nplanes;
found_default_visual = 1;
}
}
numVisuals++;
}
visuals = reallocarray(visuals, numVisuals, sizeof(VisualRec));