diff options
| author | Richard M. Stallman | 1995-08-03 23:19:05 +0000 |
|---|---|---|
| committer | Richard M. Stallman | 1995-08-03 23:19:05 +0000 |
| commit | 20de20dce1e18aa1e995b2391efa9448d764eb7a (patch) | |
| tree | 99e657c4999cc73755d6892687055144f95bfae7 | |
| parent | fb3afe8779daaa1ee72d6b62cefea79c219e4acd (diff) | |
| download | emacs-20de20dce1e18aa1e995b2391efa9448d764eb7a.tar.gz emacs-20de20dce1e18aa1e995b2391efa9448d764eb7a.zip | |
(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.
| -rw-r--r-- | src/xdisp.c | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/src/xdisp.c b/src/xdisp.c index 6a426f80b5c..6a4b5dc34ac 100644 --- a/src/xdisp.c +++ b/src/xdisp.c | |||
| @@ -779,6 +779,9 @@ static int do_verify_charstarts; | |||
| 779 | no more than once ever 1000 redisplays. */ | 779 | no more than once ever 1000 redisplays. */ |
| 780 | static int clear_face_cache_count; | 780 | static int clear_face_cache_count; |
| 781 | 781 | ||
| 782 | /* Record the previous terminal frame we displayed. */ | ||
| 783 | static FRAME_PTR previous_terminal_frame; | ||
| 784 | |||
| 782 | void | 785 | void |
| 783 | redisplay () | 786 | redisplay () |
| 784 | { | 787 | { |
| @@ -792,6 +795,19 @@ redisplay () | |||
| 792 | if (noninteractive) | 795 | if (noninteractive) |
| 793 | return; | 796 | return; |
| 794 | 797 | ||
| 798 | #ifdef MULTI_FRAME | ||
| 799 | if (FRAME_TERMCAP_P (selected_frame) | ||
| 800 | && previous_terminal_frame != selected_frame) | ||
| 801 | { | ||
| 802 | /* Since frames on an ASCII terminal share the same display area, | ||
| 803 | displaying a different frame means redisplay the whole thing. */ | ||
| 804 | windows_or_buffers_changed++; | ||
| 805 | SET_FRAME_GARBAGED (selected_frame); | ||
| 806 | XSETFRAME (Vterminal_frame, selected_frame); | ||
| 807 | } | ||
| 808 | previous_terminal_frame = selected_frame; | ||
| 809 | #endif | ||
| 810 | |||
| 795 | /* Set the visible flags for all frames. | 811 | /* Set the visible flags for all frames. |
| 796 | Do this before checking for resized or garbaged frames; they want | 812 | Do this before checking for resized or garbaged frames; they want |
| 797 | to know if their frames are visible. | 813 | to know if their frames are visible. |
| @@ -1094,7 +1110,8 @@ update: | |||
| 1094 | FRAME_PTR mini_frame | 1110 | FRAME_PTR mini_frame |
| 1095 | = XFRAME (WINDOW_FRAME (XWINDOW (minibuf_window))); | 1111 | = XFRAME (WINDOW_FRAME (XWINDOW (minibuf_window))); |
| 1096 | 1112 | ||
| 1097 | if (mini_frame != selected_frame) | 1113 | if (mini_frame != selected_frame |
| 1114 | && ! FRAME_TERMCAP_P (mini_frame)) | ||
| 1098 | pause |= update_frame (mini_frame, 0, 0); | 1115 | pause |= update_frame (mini_frame, 0, 0); |
| 1099 | } | 1116 | } |
| 1100 | } | 1117 | } |