changeset 31294:52f31a08e52f

(echo_area_display): Check display_completed instead of calling detect_input_pending.
author Gerd Moellmann <gerd@gnu.org>
date Wed, 30 Aug 2000 14:59:06 +0000
parents 350688ed3b12
children d4f918f0b184
files src/xdisp.c
diffstat 1 files changed, 11 insertions(+), 17 deletions(-) [+]
line wrap: on
line diff
--- a/src/xdisp.c	Wed Aug 30 13:18:07 2000 +0000
+++ b/src/xdisp.c	Wed Aug 30 14:59:06 2000 +0000
@@ -6292,30 +6292,24 @@
 
       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);
 	    }