GNOME Bugzilla – Bug 588033
background tabs may lose lines off the bottom of the scrollback
Last modified: 2010-02-28 12:16:53 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
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)
*** Bug 563374 has been marked as a duplicate of this bug. ***
*** Bug 607529 has been marked as a duplicate of this bug. ***
*** Bug 611363 has been marked as a duplicate of this bug. ***