diff options
| author | Eli Zaretskii | 2016-02-25 19:57:47 +0200 |
|---|---|---|
| committer | Eli Zaretskii | 2016-02-25 19:57:47 +0200 |
| commit | 06a872b71d6580e0699600844bb9526602437990 (patch) | |
| tree | 4cbbaa56919f5e543c87722a7b1e4b0885e8a621 /src | |
| parent | 95f5a4337c9092ab81d57d8ab5f341fc182d10cd (diff) | |
| download | emacs-06a872b71d6580e0699600844bb9526602437990.tar.gz emacs-06a872b71d6580e0699600844bb9526602437990.zip | |
Fix redisplay on a TTY after 'make-frame'
* src/xdisp.c (clear_garbaged_frames): Don't clear/redraw a
garbaged TTY frame if it is not the selected frame. (Bug#22794)
Diffstat (limited to 'src')
| -rw-r--r-- | src/xdisp.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/xdisp.c b/src/xdisp.c index fed58799eaa..dec99478ea5 100644 --- a/src/xdisp.c +++ b/src/xdisp.c | |||
| @@ -11232,6 +11232,7 @@ clear_garbaged_frames (void) | |||
| 11232 | if (frame_garbaged) | 11232 | if (frame_garbaged) |
| 11233 | { | 11233 | { |
| 11234 | Lisp_Object tail, frame; | 11234 | Lisp_Object tail, frame; |
| 11235 | struct frame *sf = SELECTED_FRAME (); | ||
| 11235 | 11236 | ||
| 11236 | FOR_EACH_FRAME (tail, frame) | 11237 | FOR_EACH_FRAME (tail, frame) |
| 11237 | { | 11238 | { |
| @@ -11239,7 +11240,13 @@ clear_garbaged_frames (void) | |||
| 11239 | 11240 | ||
| 11240 | if (FRAME_VISIBLE_P (f) && FRAME_GARBAGED_P (f)) | 11241 | if (FRAME_VISIBLE_P (f) && FRAME_GARBAGED_P (f)) |
| 11241 | { | 11242 | { |
| 11242 | if (f->resized_p) | 11243 | if (f->resized_p |
| 11244 | /* It makes no sense to redraw a non-selected TTY | ||
| 11245 | frame, since that will actually clear the | ||
| 11246 | selected frame, and might leave the selected | ||
| 11247 | frame with corrupted display, if it happens not | ||
| 11248 | to be marked garbaged. */ | ||
| 11249 | && !(f != sf && (FRAME_TERMCAP_P (f) || FRAME_MSDOS_P (f)))) | ||
| 11243 | redraw_frame (f); | 11250 | redraw_frame (f); |
| 11244 | else | 11251 | else |
| 11245 | clear_current_matrices (f); | 11252 | clear_current_matrices (f); |