> From: pop <pop@dcs.glasgow.ac.uk>
>
> (a) Poplog seems considerably more fragile since it got together with X,
> particularly on the SUNs. Is there any experience as to what the general
> problems are - I know Aaron had problems with posting news, and these are
> repeatable, but some of my applications just bomb out with repeated
> memory violations. (And I don't think it can be attributed to my own
> C stuff, 'cos it seems to happen even when I am not using it).
All depends on what version of Poplog. As Julian and Jon pointed out
some problems are related to particular X implementations (OLIT in
particular.) With COSE approaching fast people with OLIT applications
should start seriously thinking of porting them to Motif. OLIT will
still be supported by Poplog but future development will be minimal.
There are some bugs in 14.2 related to forking processes which are
handling X stuff. These should be fixed in the next release (I can give
you a hack which would solve some of these if you want.)
> (b) ALSO, how do you prevent your poplog process exiting when you quit from
> a window that you have created?
Julian & Jon covered the Motif case, OLIT (as ever) is slightly more
tricky. The OLIT widgets have handlers for window manager messages (like
the quit signal) built into their VendorShell widget which overrides the
Poplog defaults. You can override this by setting the XtN
wmProtocolInterested resource, but this can only be set a widget
initialisation time (not via -XptPopValue- etc.)
An alternative is to set the wmProtocol callback list (via the
undocumented OlAddCallback procedure --- don'tya just love OLIT.)
Setting this to a procedure which does nothing will override the OLIT
defaults and let the Poplog ones take over. The following should work:
;;; GET A WIDGET TO PLAY WITH
uses rc_graphic;
rc_start();
vars shell=rc_window.XptShellOfObject;
uses fast_xt_callback; ;;; FOR THE CALLBACK COERCION
XptLoadProcedures 'OlAddCallback' OlAddCallback;
;;; ADD CALLBACK PROCEDURE WHICH DOES NOTHING
exacc (4) raw_OlAddCallback(
shell,
XtN wmProtocol,
XptExportCallbackCached(erasenum(%3%), false, false)
);
Hitting "quit" on the Xgraphic window should now just destroy the
widget.
Hope this helps.
aids (email: adrianh@cogs.susx.ac.uk, phone: [+44] (0)273-678367)
ObDisclamer: Poplog pay my wages
|