* 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.
This commit is contained in:
Dan Nicolaescu 2009-01-30 23:45:27 +00:00
parent 4d18a7a28e
commit db87892598
3 changed files with 23 additions and 1 deletions

View file

@ -1,5 +1,10 @@
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>

View file

@ -6218,6 +6218,11 @@ window_change_signal (signalnum) /* If we don't have an argument, */
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) {

View file

@ -2470,7 +2470,19 @@ the currently selected frame. */)
#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);