External widget behavior is a bit better. Xm external client works
entirely OK: just after calling (make-frame) external widget window
begins responding to all mouse and keyboard events. Xt external
client behaves the same way: mouse events from it reach xemacs, but
keyboard events do not.
Removing regular X frame by just closing its top-level window using
window manager works normally. However, with external frame this is
not the same. After doing so xemacs hangs like this:
#0 0x821441f in _r_select ()
#1 0x80316a2b in _XWaitForReadable () from /usr/lib/libX11.so
#2 0x80316f0e in _XRead () from /usr/lib/libX11.so
#3 0x80317520 in _XReply () from /usr/lib/libX11.so
#4 0x8031456a in XSync () from /usr/lib/libX11.so
#5 0x81c7153 in expect_x_error ()
at xemacs-21.2/src/device-x.c:1069
#6 0x81d465b in x_delete_frame (f=0x8596c00)
at xemacs-21.2/src/frame-x.c:2676
#7 0x81245dd in delete_frame_internal (f=0x8596c00, force=137163776,
called_from_delete_device=0, from_io_error=9256)
at xemacs-21.2/src/frame.c:1533
#8 0x812c6c6 in io_error_delete_frame ()
at xemacs-21.2/src/frame.c:1654
#9 0x80f440e in execute_internal_event (event=142460044)
at xemacs-21.2/src/event-stream.c:2931
#10 0x80f6815 in Fdispatch_event (event=142460044)
at xemacs-21.2/src/event-stream.c:4169
#11 0x809a4e8 in Fcommand_loop_1 ()
at xemacs-21.2/src/cmdloop.c:583
#12 0x809a786 in command_loop_1 ()
at xemacs-21.2/src/cmdloop.c:494
#13 0x80c2c1b in condition_case_1 ()
at xemacs-21.2/src/eval.c:1651
#14 0x809a8ef in command_loop_2 ()
at xemacs-21.2/src/cmdloop.c:256
#15 0x80c2ae0 in internal_catch ()
at xemacs-21.2/src/eval.c:1317
#16 0x8099d4e in initial_command_loop (load_me=9256)
at xemacs-21.2/src/cmdloop.c:305
#17 0x80b4520 in sort_args (argc=1, argv=0x8047894)
at xemacs-21.2/src/emacs.c:2253
#18 0x80b64dc in voodoo_free_hook ()
at xemacs-21.2/src/emacs.c:2682
#19 0x807be4b in _start ()
One can force _XReply () and XSync () to return by debugger and
continue. Doing so causes XmuPrintDefaultErrorMessage to emit several
`unexpected async reply' messages. Then xemacs hangs a bit later in a
similar way:
#0 0x821441f in _r_select ()
#1 0x80316a2b in _XWaitForReadable () from /usr/lib/libX11.so
#2 0x80316f0e in _XRead () from /usr/lib/libX11.so
#3 0x80317520 in _XReply () from /usr/lib/libX11.so
#4 0x8031456a in XSync () from /usr/lib/libX11.so
#5 0x81c7180 in x_error_occurred_p ()
at xemacs-21.2/src/device-x.c:1078
After forcing XSync () to return again it continues without visible
flaws.
X environment: x11 5, motif 1.2 (SCO xds 5.2.5h, SCO BaseX 5.1.1b)