Wed May 14 12:42:51 2008 Michael Jennings (mej)

Patch from Kim Woelders <kim@woelders.dk>:

    There is a race problem with Eterm during startup related to the
    shell LINES/COLUMNS env vars.

    If the WM changes the window size (e.g. due to saved settings)
    before mapping the window, sometimes the shell will set LINES and
    COLUMNS according to the old/incorrect size and sometimes to the
    new/correct size, depending on wheter the call to tt_winsize() at
    command.c line 2322 (by the shell child process) or the
    tt_resize() (by the Eterm process) due to the ConfigureNotify
    caused by the resize (or WM ICCCM ConfigureNotify) operation
    happens first.

The call in question was added by Azundris for Escreen.  So far
Escreen seems to be behaving properly with this patch applied, but all
my Eterm windows (Escreen and otherwise) are pre-sized with -g anyway.
So I'm going to keep my eye on it for awhile.  In case of trouble,
change the "#if 0" to "#ifdef ESCREEN" to revert to previous behavior
when in Escreen mode.  Normal operation should not require the call in
question.
----------------------------------------------------------------------


SVN revision: 34568
This commit is contained in:
Michael Jennings 2008-05-14 19:49:22 +00:00
parent b9f3a99c56
commit 3df02b2205
4 changed files with 42 additions and 14 deletions

View File

@ -5531,3 +5531,27 @@ Tue Jul 3 20:48:46 2007 Michael Jennings (mej)
Remove some cruft from kEsetroot.
----------------------------------------------------------------------
Wed May 14 12:42:51 2008 Michael Jennings (mej)
Patch from Kim Woelders <kim@woelders.dk>:
There is a race problem with Eterm during startup related to the
shell LINES/COLUMNS env vars.
If the WM changes the window size (e.g. due to saved settings)
before mapping the window, sometimes the shell will set LINES and
COLUMNS according to the old/incorrect size and sometimes to the
new/correct size, depending on wheter the call to tt_winsize() at
command.c line 2322 (by the shell child process) or the
tt_resize() (by the Eterm process) due to the ConfigureNotify
caused by the resize (or WM ICCCM ConfigureNotify) operation
happens first.
The call in question was added by Azundris for Escreen. So far
Escreen seems to be behaving properly with this patch applied, but all
my Eterm windows (Escreen and otherwise) are pre-sized with -g anyway.
So I'm going to keep my eye on it for awhile. In case of trouble,
change the "#if 0" to "#ifdef ESCREEN" to revert to previous behavior
when in Escreen mode. Normal operation should not require the call in
question.
----------------------------------------------------------------------

View File

@ -9,18 +9,18 @@
Summary: Enlightened terminal emulator
Name: Eterm
Version: 0.9.4
Release: 1
#Release: 0.%(date '+%Y%m%d')
Version: 0.9.5
#Release: 1
Release: 0.%(date '+%Y%m%d')
License: BSD
Group: User Interface/X
Requires: imlib2, imlib2-loader_jpeg, imlib2-loader_png
#BuildSuggests: xorg-x11-devel
BuildRequires: libast imlib2-devel XFree86-devel
Source0: ftp://ftp.eterm.org/pub/Eterm/%{name}-%{version}.tar.%{compression}
Source1: ftp://ftp.eterm.org/pub/Eterm/%{name}-bg-%{version}.tar.%{compression}
#BuildSuggests: xorg-x11-devel XFree86-devel xorg-x11-proto-devel libXext-devel libXt-devel freetype-devel
BuildRequires: libast imlib2-devel
Source0: http://www.eterm.org/download/%{name}-%{version}.tar.%{compression}
Source1: http://www.eterm.org/download/%{name}-bg-%{version}.tar.%{compression}
URL: http://www.eterm.org/
BuildRoot: /var/tmp/%{name}-%{version}-root
BuildRoot: %{?_tmppath}%{!?_tmppath:/var/tmp}/%{name}-%{version}-root
%description
Eterm is a color vt102 terminal emulator with enhanced graphical
@ -47,21 +47,21 @@ export CFLAGS
%{__make} %{?mflags}
%install
rm -rf $RPM_BUILD_ROOT
%{__rm} -rf $RPM_BUILD_ROOT
# If the configure macro is used above (which it is), there
# is NO reason to use the makeinstall macro here, so don't.
%{__make} install DESTDIR=$RPM_BUILD_ROOT %{?mflags_install}
( cd $RPM_BUILD_ROOT
mv .%{_bindir}/%{name} .%{_bindir}/%{name}-%{version}
%{__mv} .%{_bindir}/%{name} .%{_bindir}/%{name}-%{version}
cd $RPM_BUILD_ROOT%{_bindir}
ln -f -s %{name}-%{version} %{name}
%{__ln_s} -f %{name}-%{version} %{name}
cd $RPM_BUILD_ROOT
chmod +x .%{_libdir}/lib*so* ||:
)
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/X11/applnk/Utilities
%{__mkdir_p} $RPM_BUILD_ROOT%{_sysconfdir}/X11/applnk/Utilities
cat > $RPM_BUILD_ROOT%{_sysconfdir}/X11/applnk/Utilities/Eterm.desktop <<EOF
[Desktop Entry]
Name=Eterm

View File

@ -22,7 +22,7 @@ SAVE_AUTOHEADER="$AUTOHEADER"
SAVE_AUTOMAKE="$AUTOMAKE"
AC_INIT(src/feature.h)
AM_INIT_AUTOMAKE(Eterm, 0.9.4)
AM_INIT_AUTOMAKE(Eterm, 0.9.5)
dnl# Set some basic variables
DATE="`date '+%d %B %Y'`"

View File

@ -2319,7 +2319,11 @@ run_command(char **argv)
get_tty();
SET_TTYMODE(0, &tio);
tt_winsize(0);
#if 0
if (TermWin.screen_mode != NS_MODE_NONE) {
tt_winsize(0);
}
#endif
/* become virtual console, fail silently */
if (BITFIELD_IS_SET(vt_options, VT_OPTIONS_CONSOLE)) {