[comp.windows.x] Problem setting window manager hints

bill@polygen.uucp (Bill Poitras) (02/07/91)

Hello netland,
	I am trying to set window manager hints in an X program.  I use the
following code: (assumue all variables are declared)

Note: eventMask is defined as
KeyPressMask|KeyReleaseMask|ButtonPressMask|
	    ButtonReleaseMask|Button1MotionMask|ExposureMask|
	    Button2MotionMask|Button3MotionMask|
	    StructureNotifyMask|EnterWindowMask;

.
.
.
    new_frame->prim_window_id = new_frame->base_win_id = 
	XCreateWindow(display,
	    DefaultRootWindow(display),
	    size_hint.x - MAIN_WIN_INSET,
            size_hint.y - MAIN_WIN_INSET,
            size_hint.width + MAIN_WIN_INSET,
	    size_hint.height + MAIN_WIN_INSET,
	    border_width,
    	    CopyFromParent,
 	    InputOutput,
	    CopyFromParent,	
	    valueMask,	
	    &attributes);
    window_is_open = 1;
    XFreePixmap( display, back );

    /* create the cursor */
    new_cursor = XCreateFontCursor(display, XC_left_ptr);
    XDefineCursor(display, new_frame->prim_window_id,  new_cursor);
    XFreeCursor( display, new_cursor );


XSetNormalHints(display, new_frame->prim_window_id, &size_hint);

/* set the window manager hints */
wm_hints.input = TRUE;
wm_hints.initial_state = NormalState;
wm_hints.flags = InputHint|StateHint;
result = XSetWMHints( display, new_frame->prim_window_id, &wm_hints );

/* set the application Class */
class_hint.res_class = "Centrum";
class_hint.res_name = LAM_Appid;
XSetClassHint( display, new_frame->prim_window_id, &class_hint);
.
.
.
    if( new_frame->parent_frame == NULL ) {
        empty_icon =
XCreateBitmapFromData(display,new_frame->prim_window_id,
		polygen_icon_bits, polygen_icon_width, polygen_icon_height );
        XSetStandardProperties( display, new_frame->prim_window_id,
		title, icontitle, empty_icon, NULL, 0, NULL );
        image = (gra_image *)MEM_Alloc((int32)sizeof(gra_image));
        image->pixmap = empty_icon;
    } else {
	image = (gra_image *)new_frame->parent_frame->icon;
	if( image != NULL ) {
	    new_frame->icon = (GRA_image)image;
            XSetStandardProperties( display, new_frame->prim_window_id,
		title, icontitle, image->pixmap, NULL, 0, NULL );
	}
    }


    /* Make this frame accept events */
    XSelectInput(display, new_frame->prim_window_id, eventMask);

    /* map (display) the window */
    XMapWindow(display, new_frame->prim_window_id);

.
.
.
While this program is running, xwininfo -wm outputs this:
xwininfo ==> Please select the window about which you
         ==> would like information by clicking the
         ==> mouse in that window.

xwininfo ==> Window id: 0xc0001d (A Very long title for a frame)

         ==> Window manager hints:


if there were no window manager hints being set, the last line should
have read:
         ==> No window manager hints defined

So why is the window manager hints coming up null?  Any help would
greatly be appreciated.

+-----------------+---------------------------+-----------------------------+
| Bill Poitras    | Polygen Corporation       | {princeton mit-eddie        |
|     (bill)      | Waltham, MA USA           |  bu sunne}!polygen!bill     |
|                 | FAX (617)890-8694         | bill@polygen.com            |
+-----------------+---------------------------+-----------------------------+