XVisualInfo template;
XPixmapFormatValues* pf;
XPixmapFormatValues* pfs;
+ XWindowAttributes window_attributes;
pfs = XListPixmapFormats(xfi->display, &pf_count);
template.class = TrueColor;
template.screen = xfi->screen_number;
+ if (XGetWindowAttributes(xfi->display, RootWindowOfScreen(xfi->screen), &window_attributes) == 0)
+ {
+ printf("xf_get_pixmap_info: XGetWindowAttributes failed\n");
+ return false;
+ }
+
vis = XGetVisualInfo(xfi->display, VisualClassMask | VisualScreenMask, &template, &vi_count);
if (vis == NULL)
{
vi = vis + i;
- if (vi->depth == xfi->depth)
+ if (vi->visual == window_attributes.visual)
{
xfi->visual = vi->visual;
break;