# HG changeset patch # User Richard M. Stallman # Date 793010418 0 # Node ID 79745e047484e5288f73d5becbb8621731be52b3 # Parent 813b186e70d8521a04c6e7ba9ae8e8066e17f81b (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. diff -r 813b186e70d8 -r 79745e047484 src/dispnew.c --- 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; {