aw@KITCHEN.BELLCORE.COM (Andrew Wason, aw@cellar.bae.bellcore.com) (12/01/90)
I have started using TransientShells in my application in an attempt to avoid the "convenience" of XmDialogShell. I have a XmNcreatePopupChildProc function for each dialog to create its children when it is popped up. This doesn't work, because when I create the TransientShell, Motif adds a function to the XmNpopupCallback list. This function, libXm.a(Vendor.o):PopupCallback, appears to attempt to realize the TransientShell. Since the Intrinsics calls the XmNpopupCallback before the XmNcreatePopupChildProc, this function tries to realize my shell before it has any children and I get a "shell has zero width/height error". I solved this by doing an XtRemoveAllCallbacks on XmNpopupCallback immediately after creating my TransientShell. Everything seems to work find now, but since I don't have source I am afraid this PopupCallback() function does something else and removing it may end up screwing me later. Does anyone know what PopupCallback() does? Is there anything else I should be worried about when substituting TransientShell for XmDialogShell? Thanks, Andrew -------------------------------------------------------------------------------- Andrew Wason Bell Communications Research aw@cellar.bae.bellcore.com Piscataway, NJ bellcore!cellar!aw
nazgul@alphalpha.com (Kee Hinckley) (12/01/90)
> Does anyone know what PopupCallback() does? Is there anything > else I should be worried about when substituting TransientShell > for XmDialogShell? Well, to start with, the reason it realizes your widget is that it claims to be working around the "broken Xt spec ordering for realize and popup callback". It also sets the map style (whatever that is) and does a bunch of suff with mwm hints. Off hand it looks a little dangerous to override.