From edc681111e677b28d461fc56282381caf90952a0 Mon Sep 17 00:00:00 2001 From: Gerd Moellmann Date: Wed, 30 Aug 2000 14:59:06 +0000 Subject: [PATCH] (echo_area_display): Check display_completed instead of calling detect_input_pending. --- src/xdisp.c | 26 ++++++++++---------------- 1 file changed, 10 insertions(+), 16 deletions(-) diff --git a/src/xdisp.c b/src/xdisp.c index 671f7f8aa5f..e8805a314f2 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -6292,30 +6292,24 @@ echo_area_display (update_frame_p) if (update_frame_p) { - /* Not called from redisplay_internal. If we changed window - configuration, we must redisplay thoroughly, of course. - - Likewise if input is pending, because the pending input - can have interrupted a previous redisplay, or redisplay - wasn't called because of the pending input (see - keyboard.c). In both cases, we would display the message - fine, but the rest of the display would be garbage. - - Otherwise, we can do with updating just what we displayed - above. */ - - if (window_height_changed_p || detect_input_pending ()) + /* Not called from redisplay_internal. */ + + if (!display_completed || window_height_changed_p) { + /* Must update other windows. If current display is not + up-to-date because the last redisplay was interrupted + by pending input, esp. the mode-line above the echo + area might display garbage which looks odd. */ int count = specpdl_ptr - specpdl; - specbind (Qredisplay_dont_pause, Qt); - ++windows_or_buffers_changed; - ++update_mode_lines; + windows_or_buffers_changed = 1; redisplay_internal (0); unbind_to (count, Qnil); } else if (FRAME_WINDOW_P (f)) { + /* Window configuration is the same as before. + Can do with a display update of the echo area. */ update_single_window (w, 1); rif->flush_display (f); } -- 2.39.5