Mercurial > vim
diff src/window.c @ 10013:942d40a92be6 v7.4.2279
commit https://github.com/vim/vim/commit/46328f9a1cc8047d1e05095bc9f531038c5a4028
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun Aug 28 15:39:57 2016 +0200
patch 7.4.2279
Problem: Starting diff mode with the cursor in the last line might end up
only showing one closed fold. (John Beckett)
Solution: Scroll the window to show the same relative cursor position.
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sun, 28 Aug 2016 15:45:05 +0200 |
parents | 9560a2eb7968 |
children | 4aead6a9b7a9 |
line wrap: on
line diff
--- a/src/window.c +++ b/src/window.c @@ -5674,8 +5674,6 @@ set_fraction(win_T *wp) void win_new_height(win_T *wp, int height) { - linenr_T lnum; - int sline, line_size; int prev_height = wp->w_height; /* Don't want a negative height. Happens when splitting a tiny window. @@ -5701,6 +5699,16 @@ win_new_height(win_T *wp, int height) wp->w_height = height; wp->w_skipcol = 0; + scroll_to_fraction(wp, prev_height); +} + + void +scroll_to_fraction(win_T *wp, int prev_height) +{ + linenr_T lnum; + int sline, line_size; + int height = wp->w_height; + /* Don't change w_topline when height is zero. Don't set w_topline when * 'scrollbind' is set and this isn't the current window. */ if (height > 0