[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

"Terminal wants to type out"

    Date: Saturday, 26 May 1984, 15:06-EDT
    From:  <DROGERS at MIT-PREP>

    In ZWEI in Release 5.0 [Beta Test rev 7], FEP 18, on Lisp Machine Keith Moon (3600):

    When one is in the Editor and a terminal wants to type out, a message [hh:mm Terminal n wants to type out]
    is displayed in the bottom window. Once the terminal has been selected, this message should
    be removed. Otherwise, the message needs complex time parsing to tell whether it is a new one
    that should be paid attention to, or an old one that can be ignored.

This is a reasonable request.

The way I would like to deal with this, and with some other related problems,
is by introducing new blips which are sent when some event occurs relevant to
a process/window which the process might be interested in.  For instance,
blips should be sent for :EXPOSE, :DEEXPOSE, :SELECT, :DESELECT, :REFRESH,
etc.  Zwei does this itself for some of these messages.  Also, a blip (or some
other special values) should be returned from :ANY-TYI when returning from
Suspend or m-Suspend.  There are some programs which remove Suspend and
m-Suspend from the intercepted characters list but which interpret them in the
usual fashion just because they want to know when they are typed.  You can't
just insert a blip into the IO-BUFFER in the intra-process case since
something else might have been inserted in the meantime.

The [hh:mm <Window> wants to type out] notification would have to be replaced
with a more structured message.  Then, if:

1. A (:SELECT <Window-1>) blip is received (meaning that the editor window is
   being selected, and <Window> was the previously selected window;

2. A [hh:mm <Window-2> wants to type out] notification is displayed and has
   not yet been erased, and no other typein-window typeout has taken place;

3. <Window-1> and <Window-2> are EQ;

then the notification would be erased.  All these conditions must be met in
order to avoid erasing notifications which the user might not have read yet.