Mercurial > emacs
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); |