arne@yc.estec.nl (Arne Lundberg) (02/13/90)
I am using HP OSF/Motif on a HP 9000/800 system. I have a few problems: 1) I want to create a modal FormDialog that pops up and disables the main application until it is closed down. I have tried using the XmCreateFormDialog() function and this creates a modeless dialog? Is there any way in Motif to do this? 2) The manual specifies that this FormDialog should always be iconified together with the toplevel window. This does not work when using R4 twm but (of course) when I use the Motif windowmanager mwm. Why is this so? Does Motif require more than a ICCCM compatible windowmanager? Arne Lundberg European Space Technology Centre, Noordwijk, the Netherlands arne@yc.estec.nl or ALUNDBER@ESTEC.BITNET Phone: +31 1719 84865, Fax: +31 1719 12142, Telex: 39098
gabe@hpcvlx.cv.hp.com (Gabe Begeddov) (02/14/90)
/ hpcvlx:comp.windows.x / arne@yc.estec.nl (Arne Lundberg) / 6:12 am Feb 13, 1990 / I am using HP OSF/Motif on a HP 9000/800 system. I have a few problems: 1) I want to create a modal FormDialog that pops up and disables the main application until it is closed down. I have tried using the XmCreateFormDialog() function and this creates a modeless dialog? Is there any way in Motif to do this? one of the consequences of following the PM model in Motif 1.0 was that we did not support what will be called XmFULL_APPLICATION_MODAL in Motif 1.1. This is the mode that locks out user input for all other windows of the application for that display. Instead we supported the PM style that only locks out ancestors in the transient tree of the dialog. What this means is that if you take your widget tree and prune it leaving only shells and think of each non-transient shell as the root of a "transient" tree then these are the trees that Mwm (and PM) will maintain stacking order, modal input and iconification on. When using Mwm, you can set the Dialog's XmNdialogStyle resource to XmDIALOG_APPLICATION_MODAL or XMDIALOG_SYSTEM_MODAL and get something close to what you want. If you're determined to lock out in the Xt style then you can explicitly use the Xt calls XtGrab(form, XtGrabExclusive) and XtUngrab(form) before calling XtManageChild and XtUnmanageChild respectively. This will be directly supported in Motif 1.1 which will be available summerish. 2) The manual specifies that this FormDialog should always be iconified together with the toplevel window. This does not work when using R4 twm but (of course) when I use the Motif windowmanager mwm. Why is this so? Does Motif require more than a ICCCM compatible windowmanager? Mwm uses the transient tree (which is determined by the WM_TRANSIENT_FOR property on the shell) to manage iconification. Other window managers may use the window_group field of the WM_NORMAL_HINTS to manage iconification. One problem with the setting of these properties is that they are set when the shell is realized. If the other shell that you want to be associated with is not yet realized your window_group field will be set to NULL. Motif handles this by updating the WM_TRANSIENT_FOR property when the associated window is finally realized. The window_group code in Shell doesn't do this. If your realization order is such that you create the FormDialog before you realize your applicationShell then this may be your problem. This is due to the fact that FormDialog realizes it's shell parent during it's create logic. You can either change the create/realize order or explicitly setValue the XmNwindowGroup field of XtParent(form) to XtWindow(topShell). Arne Lundberg European Space Technology Centre, Noordwijk, the Netherlands arne@yc.estec.nl or ALUNDBER@ESTEC.BITNET Phone: +31 1719 84865, Fax: +31 1719 12142, Telex: 39098 ---------- Gabe Beged-Dov Interface Technology Operation Hewlett-Packard (Corvallis, Or)