diff options
author | Sadrul Habib Chowdhury <sadrul@users.sourceforge.net> | 2010-03-08 14:29:40 -0500 |
---|---|---|
committer | Sadrul Habib Chowdhury <sadrul@users.sourceforge.net> | 2010-03-08 14:29:40 -0500 |
commit | 25ff9f7a8bf4e7e90ed6e2c26d8e3a32fd5a9368 (patch) | |
tree | 837b750607f3b0a1ef58d7dff61ca8c7c5967146 | |
parent | eb4cea75f23df90ac955e001fc5c3e54062d97cb (diff) | |
download | screen-25ff9f7a8bf4e7e90ed6e2c26d8e3a32fd5a9368.tar.gz |
Fix a hardstatus update issue.
The initial change was to fix a bug in gnome-terminal
(https://savannah.gnu.org/bugs/?23699), but that broke hardstatus
update issues on bell (https://savannah.gnu.org/bugs/?24096). So
apply a proper fix for #23699 without causing #24096.
-rw-r--r-- | src/display.c | 28 |
1 files changed, 8 insertions, 20 deletions
diff --git a/src/display.c b/src/display.c index 36368aa..5fc5f4b 100644 --- a/src/display.c +++ b/src/display.c @@ -2327,26 +2327,7 @@ int y, from, to, isblank; return; /* can't refresh status */ } - /* The following check makes plenty of sense. Unfortunately, - vte-based terminals (notably gnome-terminal) experience a quirk - that causes the final line not to update properly when it falls outside - the scroll region; clearing the line with D_CE avoids the glitch, - so we'll disable this perfectly sensible shortcut until such a time - as widespread vte installations lack the glitch. - - See http://bugzilla.gnome.org/show_bug.cgi?id=542087 for current - status of the VTE bug report, and - https://savannah.gnu.org/bugs/index.php?23699 for the history from - the Savannah BTS. */ -#if 0 - if (y == D_height - 1 && D_has_hstatus == HSTATUS_LASTLINE) - { - RefreshHStatus(); - return; - } -#endif - - if (isblank == 0 && D_CE && to == D_width - 1 && from < to) + if (isblank == 0 && D_CE && to == D_width - 1 && from < to && D_status != STATUS_ON_HS) { GotoPos(from, y); if (D_UT || D_BE) @@ -2354,6 +2335,13 @@ int y, from, to, isblank; AddCStr(D_CE); isblank = 1; } + + if (y == D_height - 1 && D_has_hstatus == HSTATUS_LASTLINE) + { + RefreshHStatus(); + return; + } + while (from <= to) { lcv = 0; |