Hello Xorg Mailing List,

   Lately I've been trying to create a window with XWindowCreate() using
depth, class, and visual from a visual I obtain using XGetVisualInfo() (of
course I parse the XVisualInfo[] for a single XVisualInfo). When X creates
the window, I get the following error:

X Error of failed request:  BadValue (integer parameter out of range for
operation)
  Major opcode of failed request:  1 (X_CreateWindow)
  Value in failed request:  0x4
  Serial number of failed request:  62
  Current serial number in output stream:  66
(code segment below)

0x4 meaning the class (TrueColor), because when I change it to DirectColor,
an 'inferior' class (hey, blame the enumeration!), it changes to 0x3, so it
must be the class. Any suggestions, advice, or bugs you see?

Thanks,
Lee


Here is the code segment that does this:

void
updatebars(void) {
   Monitor *m;
   int nvi = 0;
   XVisualInfo template;
   template.depth = 32;
   template.screen = screen;
   XVisualInfo *vlist = XGetVisualInfo(dpy, VisualDepthMask, &template,
&nvi);

   for(int x = 0; x < nvi; x++)
   {
     if(vlist[x].depth == 32)
       dc.vinfo = &vlist[x];
   }


   XSetWindowAttributes wa = {
     .override_redirect = True,
     .colormap = XCreateColormap( dpy, screen, dc.vinfo->visual, AllocNone
),
     .event_mask = ButtonPressMask|ExposureMask
   };

   for(m = mons; m; m = m->next) {
     if (m->barwin)
       continue;

     XMatchVisualInfo(dpy, screen, dc.vinfo->depth, dc.vinfo->class,
dc.vinfo);
     /* Original XCreateWindow

     m->barwin = XCreateWindow(dpy, root, m->wx, m->by, m->ww, bh, 0,
DefaultDepth(dpy, screen),
                               CopyFromParent, DefaultVisual(dpy, screen),
                               CWOverrideRedirect|CWBackPixmap|CWEventMask,
&wa);
     */
     m->barwin = XCreateWindow(dpy, root, m->wx, m->by, m->ww, bh, 0,
dc.vinfo->depth,
                               dc.vinfo->class, dc.vinfo->visual,
                               CWOverrideRedirect|CWColormap|CWEventMask,
&wa);

                               printf("passed!");
     XDefineCursor(dpy, m->barwin, cursor[CurNormal]);
     XMapRaised(dpy, m->barwin);
   }
 }
_______________________________________________
xorg@lists.x.org: X.Org support
Archives: http://lists.freedesktop.org/archives/xorg
Info: http://lists.x.org/mailman/listinfo/xorg
Your subscription address: arch...@mail-archive.com

Reply via email to