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.