🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.windows.x
Article #24179

destroyCallbacks

#24179
From: Michael A. Dolan
Date: Thu, 27 Jun 1991 18:52
48 lines
2880 bytes
I am currently writing a simple application using Xt Intrinsics and Motif,
and I have a few questions that hopefully can be answered:

1)      My application is driven by a main menu, and the result of a selection
is usually a dialog created with XmCreateBulletinBoardWidget(). In order to
make the Widget modal, I am adding the widget to the grab list by calling
XtAddGrab(). When a button has been pushed from the BulletinBoard widget
indicating the user is done, in the callback I do a XtRemoveGrab(). Is this
an acceptable way to do this sort of thing, or is there a better way?

2)      Some widgets, although I add them to the grab list, will cause Xt
to report an error if I try and remove the grab. A warning dialog widget is
an example. Is there a way to check to see if a widget is on any grab list,
and the number of occurances it is on the grab list? If I can check before
I attempt to call XtRemoveGrab(), maybe I can avoid the errors.

3)      I tried an experiment with a WarningDialog widget. I added a callback
( XtNdestroyCallback ) to the widget after creation using XtAddCallback().
When, from within the application, I did an XtUnrealizeWidget() followed by
an XtDestroyWidget(), the callback was executed. However, if I close the
window by using the Motif pulldown menu associated with the window, the
callback is not invoked. Why is this? The end result is that if a user decides
to kill the window from an outside agency, I can't remove him from the grab
list and the application is hung.

        For this problem, I have considered changing the menu by using .mwmrc
so it doesn't have the close option, or taking off the menu altogether. But
I haven't had much luck here, and I am don't have the time ( sigh ) to learn
all of the intricasies of mwm ( I am embarrased not to know yet but I have a
tight schedule ). *Also*, I expect the user to also run this app from twm so
I don't want to rely on the window manager too much to help me here, I would
rather control all of this from within the application.

*I am looking for a quick but elegant fix to the above*

Given all of the choices that there seem to be in handling this, I am a bit
confused as to what is the correct way to go, and would appreciate any
immediate response you may have ( epecially since I am supposed to ship next
week!! )

Please, respond directly by e-mail to:

Syd Logan
Software Engineer, AGE Logic ( we do X servers! )
e-mail: age!syd@ucsd.edu

*Thanks*
Technical Details
Message-ID: <475@nic.cerf.net>
Path: arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!sdd.hp.com!usc!ucsd!nic.cerf.net!dolanmic

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!sdd.hp.com!usc!ucsd!nic.cerf.net!dolanmic
From: dolanmic@nic.cerf.net (Michael A. Dolan)
Newsgroups: comp.windows.x,comp.windows.x.motif
Subject: destroyCallbacks
Message-ID: <475@nic.cerf.net>
Date: 27 Jun 91 18:52:00 GMT
Followup-To: age!syd@ucsd.edu
Organization: CERFnet;  La Jolla, CA
Lines: 48