changeset 10770:79745e047484

(change_frame_size_1): New subroutine. (change_frame_size): If f is termcap frame, change size of all of them. (remake_frame_glyphs): No longer static. Don't mark nonselected termcap frame as garbaged.
author Richard M. Stallman <rms@gnu.org>
date Fri, 17 Feb 1995 08:40:18 +0000
parents 813b186e70d8
children d564078d10c6
files src/dispnew.c
diffstat 1 files changed, 25 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/dispnew.c	Fri Feb 17 08:36:04 1995 +0000
+++ b/src/dispnew.c	Fri Feb 17 08:40:18 1995 +0000
@@ -72,6 +72,8 @@
 #endif
 #endif
 
+static void change_frame_size_1 ();
+
 /* Nonzero upon entry to redisplay means do not assume anything about
    current contents of actual terminal frame; clear and redraw it.  */
 
@@ -352,7 +354,7 @@
   xfree (glyphs);
 }
 
-static void
+void
 remake_frame_glyphs (frame)
      FRAME_PTR frame;
 {
@@ -385,7 +387,8 @@
   FRAME_CURRENT_GLYPHS (frame) = make_frame_glyphs (frame, 0);
   FRAME_DESIRED_GLYPHS (frame) = make_frame_glyphs (frame, 0);
   FRAME_TEMP_GLYPHS (frame) = make_frame_glyphs (frame, 1);
-  SET_FRAME_GARBAGED (frame);
+  if (! FRAME_TERMCAP_P (frame) || frame == selected_frame)
+    SET_FRAME_GARBAGED (frame);
 }
 
 /* Return the hash code of contents of line VPOS in frame-matrix M.  */
@@ -2027,7 +2030,26 @@
    redisplay.  Since this tries to resize windows, we can't call it
    from a signal handler.  */
 
-change_frame_size (frame, newheight, newwidth, pretend, delay)
+change_frame_size (f, newheight, newwidth, pretend, delay)
+     register FRAME_PTR f;
+     int newheight, newwidth, pretend;
+{
+  Lisp_Object tail, frame;
+  if (FRAME_TERMCAP_P (f))
+    {
+      /* When using termcap, all frames use the same screen,
+	 so a change in size affects all termcap frames.  */
+      FOR_EACH_FRAME (tail, frame)
+	if (FRAME_TERMCAP_P (XFRAME (frame)))
+	  change_frame_size_1 (XFRAME (frame), newheight, newwidth,
+			       pretend, delay);
+    }
+  else
+    change_frame_size_1 (f, newheight, newwidth, pretend, delay);
+}
+
+static void
+change_frame_size_1 (frame, newheight, newwidth, pretend, delay)
      register FRAME_PTR frame;
      int newheight, newwidth, pretend;
 {