]> git.eshelyaron.com Git - emacs.git/commitdiff
(Fredraw_frame): Don't erase frame or its glyph records
authorKarl Heuer <kwzh@gnu.org>
Mon, 1 Jun 1998 03:12:04 +0000 (03:12 +0000)
committerKarl Heuer <kwzh@gnu.org>
Mon, 1 Jun 1998 03:12:04 +0000 (03:12 +0000)
if it hasn't got any.

src/dispnew.c

index 609d0b5bf8d5db0ede353a23baced089e0d33f19..a468e6ea55cef335d8f1a849432e566b0011c13e 100644 (file)
@@ -178,13 +178,22 @@ DEFUN ("redraw-frame", Fredraw_frame, Sredraw_frame, 1, 1, 0,
 
   CHECK_LIVE_FRAME (frame, 0);
   f = XFRAME (frame);
-  update_begin (f);
-  if (FRAME_MSDOS_P (f))
-    set_terminal_modes ();
-  clear_frame ();
-  clear_frame_records (f);
-  update_end (f);
-  fflush (stdout);
+
+  /* Erase the frame and its glyph records--if it has any records.
+     It may have none, in the case of the terminal frame
+     that initially exists but is never used
+     when Emacs is using a window system.  */
+  if (FRAME_CURRENT_GLYPHS (f) != 0)
+    {
+      update_begin (f);
+      if (FRAME_MSDOS_P (f))
+       set_terminal_modes ();
+      clear_frame ();
+      clear_frame_records (f);
+      update_end (f);
+      fflush (stdout);
+    }
+
   windows_or_buffers_changed++;
   /* Mark all windows as INaccurate,
      so that every window will have its redisplay done.  */