diff src/term.c @ 101690:1009d5607716

* dispnew.c (window_change_signal): Don't try to get the size of a suspended tty frame. * term.c (Fresume_tty): Resize if the size has changed while the tty was suspended.
author Dan Nicolaescu <dann@ics.uci.edu>
date Fri, 30 Jan 2009 23:45:27 +0000
parents e038c1a8307c
children d4f9e4244d5a
line wrap: on
line diff
--- a/src/term.c	Fri Jan 30 23:43:20 2009 +0000
+++ b/src/term.c	Fri Jan 30 23:45:27 2009 +0000
@@ -2470,7 +2470,19 @@
 #endif
 
       if (FRAMEP (t->display_info.tty->top_frame))
-        FRAME_SET_VISIBLE (XFRAME (t->display_info.tty->top_frame), 1);
+	{
+	  struct frame *f = XFRAME (t->display_info.tty->top_frame);
+	  int width, height;
+	  int old_height = FRAME_COLS (f);
+	  int old_width = FRAME_LINES (f);
+
+	  /* Check if terminal/window size has changed while the frame
+	     was suspended.  */
+	  get_tty_size (fileno (t->display_info.tty->input), &width, &height);
+	  if (width != old_width || height != old_height)
+	    change_frame_size (f, height, width, 0, 0, 0);
+	  FRAME_SET_VISIBLE (XFRAME (t->display_info.tty->top_frame), 1);
+	}
 
       init_sys_modes (t->display_info.tty);