Mercurial > emacs
comparison src/xdisp.c @ 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 | 74e59068a948 |
children | 937154a9dfbe |
comparison
equal
deleted
inserted
replaced
12764:69dcdd99fd8d | 12765:27b568b455b1 |
---|---|
777 | 777 |
778 /* Counter is used to clear the face cache | 778 /* Counter is used to clear the face cache |
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 { |
785 register struct window *w = XWINDOW (selected_window); | 788 register struct window *w = XWINDOW (selected_window); |
786 register int pause; | 789 register int pause; |
789 register int tlbufpos, tlendpos; | 792 register int tlbufpos, tlendpos; |
790 struct position pos; | 793 struct position pos; |
791 | 794 |
792 if (noninteractive) | 795 if (noninteractive) |
793 return; | 796 return; |
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 | |
794 | 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. |
798 See the comment in frame.h for FRAME_SAMPLE_VISIBILITY. */ | 814 See the comment in frame.h for FRAME_SAMPLE_VISIBILITY. */ |
1092 it here. */ | 1108 it here. */ |
1093 { | 1109 { |
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 } |
1101 | 1118 |
1102 /* If frame does not match, prevent doing single-line-update next time. | 1119 /* If frame does not match, prevent doing single-line-update next time. |