diff options
author | Richard M. Stallman <rms@gnu.org> | 1995-02-17 08:40:18 +0000 |
---|---|---|
committer | Richard M. Stallman <rms@gnu.org> | 1995-02-17 08:40:18 +0000 |
commit | 02b346c74ffe860dcccb754c983d7b107bc18830 (patch) | |
tree | f024c93886da28934f7ddd42c4c68534168bb2aa /src/dispnew.c | |
parent | 567c11742a144c4e33dccbabe3158efc2ec550fa (diff) | |
download | emacs-02b346c74ffe860dcccb754c983d7b107bc18830.tar.gz |
(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.
Diffstat (limited to 'src/dispnew.c')
-rw-r--r-- | src/dispnew.c | 28 |
1 files changed, 25 insertions, 3 deletions
diff --git a/src/dispnew.c b/src/dispnew.c index 3fbc9f55f8d..ee29b302ac4 100644 --- a/src/dispnew.c +++ b/src/dispnew.c @@ -72,6 +72,8 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ #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 @@ free_frame_glyphs (frame, glyphs) xfree (glyphs); } -static void +void remake_frame_glyphs (frame) FRAME_PTR frame; { @@ -385,7 +387,8 @@ remake_frame_glyphs (frame) 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 @@ do_pending_window_change () 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; { |