]> git.eshelyaron.com Git - emacs.git/commitdiff
(echo_area_display): Check display_completed instead
authorGerd Moellmann <gerd@gnu.org>
Wed, 30 Aug 2000 14:59:06 +0000 (14:59 +0000)
committerGerd Moellmann <gerd@gnu.org>
Wed, 30 Aug 2000 14:59:06 +0000 (14:59 +0000)
of calling detect_input_pending.

src/xdisp.c

index 671f7f8aa5f744e864388ad2581b53f9ec21af5c..e8805a314f295f28d278c08d0f172ac4768ac8fd 100644 (file)
@@ -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);
            }