From: Eli Zaretskii Date: Thu, 25 Feb 2016 17:57:47 +0000 (+0200) Subject: Fix redisplay on a TTY after 'make-frame' X-Git-Tag: emacs-25.0.92~36 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=06a872b71d6580e0699600844bb9526602437990;p=emacs.git 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) --- 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) if (frame_garbaged) { Lisp_Object tail, frame; + struct frame *sf = SELECTED_FRAME (); FOR_EACH_FRAME (tail, frame) { @@ -11239,7 +11240,13 @@ clear_garbaged_frames (void) if (FRAME_VISIBLE_P (f) && FRAME_GARBAGED_P (f)) { - if (f->resized_p) + if (f->resized_p + /* It makes no sense to redraw a non-selected TTY + frame, since that will actually clear the + selected frame, and might leave the selected + frame with corrupted display, if it happens not + to be marked garbaged. */ + && !(f != sf && (FRAME_TERMCAP_P (f) || FRAME_MSDOS_P (f)))) redraw_frame (f); else clear_current_matrices (f);