comparison src/xdisp.c @ 30721:43684600b975

(echo_area_display): Display thoroughly if input is pending. Bind redisplay-dont-pause to t during the redisplay. in case input is pending.
author Gerd Moellmann <gerd@gnu.org>
date Wed, 09 Aug 2000 18:40:39 +0000
parents 0b56d5da235e
children a87e28789082
comparison
equal deleted inserted replaced
30720:64f3338f72d8 30721:43684600b975
6237 window_height_changed_p = display_echo_area (w); 6237 window_height_changed_p = display_echo_area (w);
6238 w->must_be_updated_p = 1; 6238 w->must_be_updated_p = 1;
6239 6239
6240 if (update_frame_p) 6240 if (update_frame_p)
6241 { 6241 {
6242 /* Not called from redisplay_internal. If we changed 6242 /* Not called from redisplay_internal. If we changed window
6243 window configuration, we must redisplay thoroughly. 6243 configuration, we must redisplay thoroughly, of course.
6244 Otherwise, we can do with updating what we displayed 6244
6245 Likewise if input is pending, because the pending input
6246 can have interrupted a previous redisplay, or redisplay
6247 wasn't called because of the pending input (see
6248 keyboard.c). In both cases, we would display the message
6249 fine, but the rest of the display would be garbage.
6250
6251 Otherwise, we can do with updating just what we displayed
6245 above. */ 6252 above. */
6246 if (window_height_changed_p) 6253
6254 if (window_height_changed_p || detect_input_pending ())
6247 { 6255 {
6256 int count = specpdl_ptr - specpdl;
6257
6258 specbind (Qredisplay_dont_pause, Qt);
6248 ++windows_or_buffers_changed; 6259 ++windows_or_buffers_changed;
6249 ++update_mode_lines; 6260 ++update_mode_lines;
6250 redisplay_internal (0); 6261 redisplay_internal (0);
6262 unbind_to (count, Qnil);
6251 } 6263 }
6252 else if (FRAME_WINDOW_P (f)) 6264 else if (FRAME_WINDOW_P (f))
6253 { 6265 {
6254 update_single_window (w, 1); 6266 update_single_window (w, 1);
6255 rif->flush_display (f); 6267 rif->flush_display (f);