Path: utzoo!attcan!uunet!peregrine!elroy.jpl.nasa.gov!sdd.hp.com!hp-pcd!hpcvlx!gabe From: gabe@hpcvlx.cv.hp.com (Gabe Begeddov) Newsgroups: comp.windows.x.motif Subject: Re: problems creating and destroy app shells Message-ID: <110630029@hpcvlx.cv.hp.com> Date: 5 Dec 90 19:47:57 GMT References: <5613@mnetor.UUCP> Organization: Hewlett-Packard Co., Corvallis, OR, USA Lines: 33 And while I'm griping about shells :-)... Maybe someone can comment on the following.. If you create dialog shells that are "popup shells" from a parent shell, then those dialogs are part of the parent's "group" and will be iconified when the parent is. The problem is, you can't raise the parent to be *over* it's dialogs... The dialogs are also popped up at 0,0 (topleft corner of screen) rather than anywhere you try to position them using XmNx or XmNy. Even if you do this in a mapCallback function. You also can't set these dialogs' colors easily in app-defaults files ... basically, this all happens with: Popup shells are secondary windows (see style guide) by default especially in the case of DialogShell. In fact DialogShell is intended for use mainly with motif dialog widgets (subclasses of BulletinBoard). In XUI DialogShell wasn't even visible to the programmer (it was called HiddenShell). In any case you should usually be using subclasses of ApplicationShell with XtAppCreateShell and are asking for trouble if you pass a lesser shell in. To solve your problem of stacking order you can use the XmNtransient boolean resource that is available on all WMShell subclasses. If set to false then the transient_for property will not be set and Mwm will treat it as a seperate top level window (for both iconification and stacking). On the issue of placement, I don't know why it wouldn't work if you are specifying an x,y prior to popping it up. If you use DialogShell in the default motif way then you would be "popping" it up by managing the dialog child in which case you could use the XmNdefaultPosition resource to get centering over the grandparent of the dialog. If you need a general purpose secondary window that wont be used with Bulletin boards then use TransientShell or TopLevelShell rather than DialogShell.