2009-01-30 Dan Nicolaescu <dann@ics.uci.edu>
+ * 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.
+
* alloc.c (mark_stack): Properly conditionalize previous change.
2009-01-30 Juanma Barranquero <lekktu@gmail.com>
if (! tty->term_initted)
continue;
+ /* Suspended tty frames have tty->input == NULL avoid trying to
+ use it. */
+ if (!tty->input)
+ continue;
+
get_tty_size (fileno (tty->input), &width, &height);
if (width > 5 && height > 2) {
#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);