diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/dispnew.c | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/src/dispnew.c b/src/dispnew.c index 609d0b5bf8d..a468e6ea55c 100644 --- a/src/dispnew.c +++ b/src/dispnew.c | |||
| @@ -178,13 +178,22 @@ DEFUN ("redraw-frame", Fredraw_frame, Sredraw_frame, 1, 1, 0, | |||
| 178 | 178 | ||
| 179 | CHECK_LIVE_FRAME (frame, 0); | 179 | CHECK_LIVE_FRAME (frame, 0); |
| 180 | f = XFRAME (frame); | 180 | f = XFRAME (frame); |
| 181 | update_begin (f); | 181 | |
| 182 | if (FRAME_MSDOS_P (f)) | 182 | /* Erase the frame and its glyph records--if it has any records. |
| 183 | set_terminal_modes (); | 183 | It may have none, in the case of the terminal frame |
| 184 | clear_frame (); | 184 | that initially exists but is never used |
| 185 | clear_frame_records (f); | 185 | when Emacs is using a window system. */ |
| 186 | update_end (f); | 186 | if (FRAME_CURRENT_GLYPHS (f) != 0) |
| 187 | fflush (stdout); | 187 | { |
| 188 | update_begin (f); | ||
| 189 | if (FRAME_MSDOS_P (f)) | ||
| 190 | set_terminal_modes (); | ||
| 191 | clear_frame (); | ||
| 192 | clear_frame_records (f); | ||
| 193 | update_end (f); | ||
| 194 | fflush (stdout); | ||
| 195 | } | ||
| 196 | |||
| 188 | windows_or_buffers_changed++; | 197 | windows_or_buffers_changed++; |
| 189 | /* Mark all windows as INaccurate, | 198 | /* Mark all windows as INaccurate, |
| 190 | so that every window will have its redisplay done. */ | 199 | so that every window will have its redisplay done. */ |