1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-03 02:31:03 -08:00

(redisplay): When displaying a terminal frame,

if it isn't the same one as last time, clear it and redraw.
Don't redisplay mini_frame as well, if it is a termcap frame.
This commit is contained in:
Richard M. Stallman 1995-08-03 23:19:05 +00:00
parent fb3afe8779
commit 20de20dce1

View file

@ -779,6 +779,9 @@ static int do_verify_charstarts;
no more than once ever 1000 redisplays. */
static int clear_face_cache_count;
/* Record the previous terminal frame we displayed. */
static FRAME_PTR previous_terminal_frame;
void
redisplay ()
{
@ -792,6 +795,19 @@ redisplay ()
if (noninteractive)
return;
#ifdef MULTI_FRAME
if (FRAME_TERMCAP_P (selected_frame)
&& previous_terminal_frame != selected_frame)
{
/* Since frames on an ASCII terminal share the same display area,
displaying a different frame means redisplay the whole thing. */
windows_or_buffers_changed++;
SET_FRAME_GARBAGED (selected_frame);
XSETFRAME (Vterminal_frame, selected_frame);
}
previous_terminal_frame = selected_frame;
#endif
/* Set the visible flags for all frames.
Do this before checking for resized or garbaged frames; they want
to know if their frames are visible.
@ -1094,7 +1110,8 @@ update:
FRAME_PTR mini_frame
= XFRAME (WINDOW_FRAME (XWINDOW (minibuf_window)));
if (mini_frame != selected_frame)
if (mini_frame != selected_frame
&& ! FRAME_TERMCAP_P (mini_frame))
pause |= update_frame (mini_frame, 0, 0);
}
}