simon-git: putty (master): Simon Tatham

Commits to Tartarus hosted VCS tartarus-commits at lists.tartarus.org
Mon Dec 30 23:33:40 GMT 2019


TL;DR:
  22453b46 Fix handling of scroll position when swapping screens.

Repository:     https://git.tartarus.org/simon/putty.git
On the web:     https://git.tartarus.org/?p=simon/putty.git
Branch updated: master
Committer:      Simon Tatham <anakin at pobox.com>
Date:           2019-12-30 23:33:40

commit 22453b46daf2b03f5fe8b2bfac35b818f6c789fe
web diff https://git.tartarus.org/?p=simon/putty.git;a=commitdiff;h=22453b46daf2b03f5fe8b2bfac35b818f6c789fe;hp=5e468129f6f82bd06f3b19fac1885750bb8b0c91
Author: Simon Tatham <anakin at pobox.com>
Date:   Mon Dec 30 23:23:42 2019 +0000

    Fix handling of scroll position when swapping screens.
    
    If the user is scrolled back in the scrollback when a screen-swap
    takes place, and if we're not configured to reset the scrollback
    completely on the grounds that the swap is display activity, then we
    should do the same thing we do for other kinds of display activity:
    strive to keep the scroll position pointing at the same text. In this
    case, that means adjusting term->disptop by the number of virtual
    lines added to the scrollback to allow the main screen to be viewed
    while the alt screen is active.
    
    This improves the quality of behaviour in that corner case, but more
    importantly, it should also fix a case of the dreaded line==NULL
    assertion failure, which someone just reported against 0.73 when
    exiting tmux (hence, switching away from the alt screen) while
    scrolled back in a purely virtual scrollback buffer: the virtual
    scrollback lines vanished, but disptop was still set to a negative
    value, which made it out of range.

 terminal.c | 35 +++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)



More information about the tartarus-commits mailing list