0
0
mirror of https://github.com/vim/vim.git synced 2025-10-10 06:24:10 -04:00

patch 9.1.0526: Unwanted cursor movement with pagescroll at start of buffer

Problem:  Cursor is moved to bottom of window trying to pagescroll when
          already at the start of the buffer (Asheq Imran, after v9.1.0357)
Solution: Don't move cursor when buffer content did not move.
          (Luuk van Baal)

closes: #15139

Signed-off-by: Luuk van Baal <luukvbaal@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
Luuk van Baal
2024-07-04 17:35:56 +02:00
committed by Christian Brabandt
parent 950292152c
commit 8ccb89016e
3 changed files with 11 additions and 3 deletions

View File

@@ -3281,10 +3281,13 @@ pagescroll(int dir, long count, int half)
MAX(1, p_window - 2) : get_scroll_overlap(dir));
nochange = scroll_with_sms(dir, count, &count);
// Place cursor at top or bottom of window.
validate_botline();
curwin->w_cursor.lnum = (dir == FORWARD ? curwin->w_topline
if (!nochange)
{
// Place cursor at top or bottom of window.
validate_botline();
curwin->w_cursor.lnum = (dir == FORWARD ? curwin->w_topline
: curwin->w_botline - 1);
}
}
if (get_scrolloff_value() > 0)

View File

@@ -4257,6 +4257,9 @@ func Test_page_cursor_topbot()
call assert_equal(18, line('.'))
exe "norm! \<C-B>\<C-F>"
call assert_equal(9, line('.'))
" Not when already at the start of the buffer.
exe "norm! ggj\<C-B>"
call assert_equal(2, line('.'))
bwipe!
endfunc

View File

@@ -704,6 +704,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
526,
/**/
525,
/**/