jordan@morgan.COM (Jordan Hayes) (10/20/90)
I have a transientShell that I "freeze" after getting the first visibilityChange event after popup by using the following code: ----- cut here static void DoFreeze(w) Widget w; { int ArgIndex; Arg sArgs[25]; Dimension W, H; XSizeHints h; ArgIndex = 0; XtSetArg(sArgs[0], XtNheight, (XtArgVal)&H); ArgIndex++; XtSetArg(sArgs[1], XtNwidth, (XtArgVal)&W); ArgIndex++; XtGetValues(w, sArgs, ArgIndex); h.flags = PMaxSize|PMinSize; h.max_width = h.min_width = W; h.max_height = h.min_height = H; XSetWMNormalHints(XtDisplay(w), XtWindow(w), &h); XtRemoveEventHandler(w, VisibilityChangeMask, FALSE, DoFreeze, NULL); } void FreezeSize(w) Widget w; { XtAddEventHandler(w, VisibilityChangeMask, FALSE, DoFreeze, NULL); } ----- cut here This works great. However, if I f.zoom the window, twm ignores my hints and zooms the window. I'm mad. Anyone have a fix? Do other window managers do this? I know they are *hints* but it sure would be nice if twm were nicer about it ... /jordan