Mercurial > emacs
changeset 12765:27b568b455b1
(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.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Thu, 03 Aug 1995 23:19:05 +0000 |
parents | 69dcdd99fd8d |
children | eed43624bc00 |
files | src/xdisp.c |
diffstat | 1 files changed, 18 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/xdisp.c Thu Aug 03 22:29:44 1995 +0000 +++ b/src/xdisp.c Thu Aug 03 23:19:05 1995 +0000 @@ -779,6 +779,9 @@ 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 @@ 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 @@ 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); } }