Package: gnome-terminal Version: 2.22.3-3 Severity: normal
If you have tabs with different font size, every time you switch between them, all tabs in the current gnome-terminal window will be resized. The underlying terminals will receive SIGWINCH and be ioctled to whatever the foreground tab's size is. Many programs will lose some of the screen's contents after resizing to something smaller. "less" and the like can redraw everything without harm, but even for those, unnecessary resizes are a waste of effort. I attached a minimal program in case the problem is not obvious. -- System Information: Debian Release: lenny/sid APT prefers testing APT policy: (500, 'testing') Architecture: i386 (i686) Kernel: Linux 2.6.26-1-686 (SMP w/1 CPU core) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/bash Versions of packages gnome-terminal depends on: ii gnome-terminal-data 2.22.3-3 Data files for the GNOME terminal ii libatk1.0-0 1.22.0-1 The ATK accessibility toolkit ii libbonobo2-0 2.22.0-1 Bonobo CORBA interfaces library ii libc6 2.7-14 GNU C Library: Shared libraries ii libgconf2-4 2.22.0-1 GNOME configuration database syste ii libglade2-0 1:2.6.2-1 library to load .glade files at ru ii libglib2.0-0 2.16.6-1 The GLib library of C routines ii libgnome2-0 2.20.1.1-1 The GNOME 2 library - runtime file ii libgnomeui-0 2.20.1.1-2 The GNOME 2 libraries (User Interf ii libgtk2.0-0 2.12.11-3 The GTK+ graphical user interface ii liborbit2 1:2.14.13-0.1 libraries for ORBit2 - a CORBA ORB ii libpango1.0-0 1.20.5-2 Layout and rendering of internatio ii libstartup-notification0 0.9-1 library for program launch feedbac ii libvte9 1:0.16.14-3 Terminal emulator widget for GTK+ ii libx11-6 2:1.1.5-2 X11 client-side library ii libxrender1 1:0.9.4-2 X Rendering Extension client libra ii scrollkeeper 0.3.14-16 A free electronic cataloging syste Versions of packages gnome-terminal recommends: ii yelp 2.22.1-8 Help browser for GNOME 2 gnome-terminal suggests no packages. -- no debconf information
#include <stdio.h> #include <termios.h> #include <sys/ioctl.h> #include <sys/select.h> #include <signal.h> void winsize() { struct winsize ws; if (ioctl(0, TIOCGWINSZ, &ws)) printf("Can't get the win size.\n"); else printf("%dx%d\n", ws.ws_col, ws.ws_row); } int resized=0; void sigwinch() { resized=1; } int main() { winsize(); signal(SIGWINCH, sigwinch); while(select(0,0,0,0,0)) if (resized) winsize(), resized=0; return 0; }