diff options
| author | Gerd Moellmann | 2000-08-30 14:59:06 +0000 |
|---|---|---|
| committer | Gerd Moellmann | 2000-08-30 14:59:06 +0000 |
| commit | edc681111e677b28d461fc56282381caf90952a0 (patch) | |
| tree | 16a070b9c55e3599d8f0de22c63fb68bb0d65ad7 /src | |
| parent | 5226a93199bccca738870ecc6ab60c09039b8443 (diff) | |
| download | emacs-edc681111e677b28d461fc56282381caf90952a0.tar.gz emacs-edc681111e677b28d461fc56282381caf90952a0.zip | |
(echo_area_display): Check display_completed instead
of calling detect_input_pending.
Diffstat (limited to 'src')
| -rw-r--r-- | src/xdisp.c | 26 |
1 files 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) | |||
| 6292 | 6292 | ||
| 6293 | if (update_frame_p) | 6293 | if (update_frame_p) |
| 6294 | { | 6294 | { |
| 6295 | /* Not called from redisplay_internal. If we changed window | 6295 | /* Not called from redisplay_internal. */ |
| 6296 | configuration, we must redisplay thoroughly, of course. | 6296 | |
| 6297 | 6297 | if (!display_completed || window_height_changed_p) | |
| 6298 | Likewise if input is pending, because the pending input | ||
| 6299 | can have interrupted a previous redisplay, or redisplay | ||
| 6300 | wasn't called because of the pending input (see | ||
| 6301 | keyboard.c). In both cases, we would display the message | ||
| 6302 | fine, but the rest of the display would be garbage. | ||
| 6303 | |||
| 6304 | Otherwise, we can do with updating just what we displayed | ||
| 6305 | above. */ | ||
| 6306 | |||
| 6307 | if (window_height_changed_p || detect_input_pending ()) | ||
| 6308 | { | 6298 | { |
| 6299 | /* Must update other windows. If current display is not | ||
| 6300 | up-to-date because the last redisplay was interrupted | ||
| 6301 | by pending input, esp. the mode-line above the echo | ||
| 6302 | area might display garbage which looks odd. */ | ||
| 6309 | int count = specpdl_ptr - specpdl; | 6303 | int count = specpdl_ptr - specpdl; |
| 6310 | |||
| 6311 | specbind (Qredisplay_dont_pause, Qt); | 6304 | specbind (Qredisplay_dont_pause, Qt); |
| 6312 | ++windows_or_buffers_changed; | 6305 | windows_or_buffers_changed = 1; |
| 6313 | ++update_mode_lines; | ||
| 6314 | redisplay_internal (0); | 6306 | redisplay_internal (0); |
| 6315 | unbind_to (count, Qnil); | 6307 | unbind_to (count, Qnil); |
| 6316 | } | 6308 | } |
| 6317 | else if (FRAME_WINDOW_P (f)) | 6309 | else if (FRAME_WINDOW_P (f)) |
| 6318 | { | 6310 | { |
| 6311 | /* Window configuration is the same as before. | ||
| 6312 | Can do with a display update of the echo area. */ | ||
| 6319 | update_single_window (w, 1); | 6313 | update_single_window (w, 1); |
| 6320 | rif->flush_display (f); | 6314 | rif->flush_display (f); |
| 6321 | } | 6315 | } |