]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix redisplay on a TTY after 'make-frame'
authorEli Zaretskii <eliz@gnu.org>
Thu, 25 Feb 2016 17:57:47 +0000 (19:57 +0200)
committerEli Zaretskii <eliz@gnu.org>
Thu, 25 Feb 2016 17:57:47 +0000 (19:57 +0200)
* src/xdisp.c (clear_garbaged_frames): Don't clear/redraw a
garbaged TTY frame if it is not the selected frame.  (Bug#22794)

src/xdisp.c

index fed58799eaae0ede3b29b49b23d926b0a35afd75..dec99478ea5cf62f0aa92580d1cf44959d1d7f2e 100644 (file)
@@ -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);