Hrvoje Niksic <hniksic(a)srce.hr> writes:
I'm afraid you are right. The "correct" behaviour is
that killing an
existing X frame deletes all the X frames *on that display*, not on
all displays. If you have only X frames running, it is normal that
XEmacs will exit -- as you say it yourself, that's how X handles
killing.
Yes, and this should not be considered bogus anyway. The semantics of
*killing* a window is really a loss of connection with this particular
display, and it's normal that it affects the whole application. If you want to
delete a single (X) window (XEmacs frame), you have the *delete* window
manager protocol for that. It often appears just before `kill' in the WM
menus.
I have now tried my patch with multiple X connections and the result
is, well, bogus.
Still, I believe my patch should be applied because it at least
attempts to bring some order to the situation, and makes things work
with the TTY consoles.
No problem with me.
> The real pain is that X considers it fatal to loose a
connection,
> even in the case you have several ones.
Yuck! Is there a way around that?
Dunno. One day I'll try to return from a fatal io error handler and
continue calling Xlib on the other displays if I have some. I'd be curious to
see if still works but I doubt it seriously. The other solution I was thinking
of was using a set of set/long jmp stuff to go back some place once we know
that a connection is broken (the io error handler was called), and try to
get rid of the connection ourself. I haven't investigated much yet.
--
/ / _ _ Didier Verna
http://www.inf.enst.fr/~verna/
- / / - / / /_/ / E.N.S.T. INF C201.1 mailto:vernaļ¼ inf.enst.fr
/_/ / /_/ / /__ / 46 rue Barrault Tel. (33) 01 45 81 80 72
75634 Paris cedex 13 Fax. (33) 01 45 81 31 19