After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 588033 - background tabs may lose lines off the bottom of the scrollback
background tabs may lose lines off the bottom of the scrollback
Status: RESOLVED FIXED
Product: vte
Classification: Core
Component: general
0.20.x
Other All
: Normal normal
: ---
Assigned To: VTE Maintainers
VTE Maintainers
: 563374 607529 611363 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2009-07-08 01:42 UTC by Josh Stone
Modified: 2010-02-28 12:16 UTC
See Also:
GNOME target: ---
GNOME version: 2.25/2.26


Attachments
[vte] ensure that scroll_delta is always adjusted (3.04 KB, patch)
2009-07-08 01:44 UTC, Josh Stone
none Details | Review

Description Josh Stone 2009-07-08 01:42:00 UTC
Please describe the problem:
When gnome-terminal has multiple tabs open, reducing the window height will cause the terminal to lose lines off of the bottom of the scrollback.

Steps to reproduce:
1. Open a new gnome-terminal
2. Run "seq 100"
3. Open and switch to a new tab
4. Reduce the height of the window
5. Switch back to the first tab


Actual results:
A few lines at the end of the seq output will be missing (depending on how much the window shrank).  The missing lines seem to be permanently gone.

Expected results:
Some lines should be pushed off the top, out of the visible area, but still accessible in the scrollback.  The bottom lines should be consistent with the seq output.

Does this happen every time?
Yes

Other information:
This was first reported in Red Hat bz466798:
https://bugzilla.redhat.com/show_bug.cgi?id=466897
Comment 1 Josh Stone 2009-07-08 01:44:50 UTC
Created attachment 138010 [details] [review]
[vte] ensure that scroll_delta is always adjusted

When gnome-terminal's height is reduced, the active tab's terminal gets
a vte_terminal_size_allocate() call, which queues an adjustment to the
scroll_delta based on visible_rows to ensure that the scrollback moves
correctly.

However, when you then switch to a different tab, that terminal gets a
vte_terminal_set_size() first, which will update terminal->row_count
with the new height.  Only after it's visible does it get
vte_terminal_size_allocate(), and there the computation of visible_rows
thinks that there's no reduction (since terminal->row_count already
matches the new height), so it doesn't compute the new scroll_delta.

This patch moves the scroll_delta computation into set_size so it is
always kept current.

(patch originated here: https://bugzilla.redhat.com/show_bug.cgi?id=466897#c6)
Comment 2 Christian Persch 2009-07-10 10:23:53 UTC
*** Bug 563374 has been marked as a duplicate of this bug. ***
Comment 3 Christian Persch 2010-01-20 12:58:10 UTC
*** Bug 607529 has been marked as a duplicate of this bug. ***
Comment 4 Christian Persch 2010-02-28 12:16:53 UTC
*** Bug 611363 has been marked as a duplicate of this bug. ***