mirror of
https://github.com/vim/vim.git
synced 2025-09-25 03:54:15 -04:00
patch 9.1.0215: Half-page scrolling does not support smooth-scrolling
Problem: Page-wise scrolling with Ctrl-D/Ctrl-U implements it's own logic to change the topline and cursor. More logic than necessary for scrolling with Ctrl-F/Ctrl-B was removed in patch 9.1.0211. Solution: Re-use the logic from Ctrl-E/Ctrl-Y/Ctrl-F/Ctrl-B while staying backward compatible as much as possible. Restore some of the logic that determined how many lines will be scrolled (Luuk van Baal) closes: #14316 Signed-off-by: Luuk van Baal <luukvbaal@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
committed by
Christian Brabandt
parent
982e191b38
commit
5a2e3ec9ac
10
src/normal.c
10
src/normal.c
@@ -2066,7 +2066,7 @@ nv_page(cmdarg_T *cap)
|
||||
goto_tabpage((int)cap->count0);
|
||||
}
|
||||
else
|
||||
(void)onepage(cap->arg, cap->count1);
|
||||
(void)pagescroll(cap->arg, cap->count1, FALSE);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -7263,12 +7263,8 @@ nv_at(cmdarg_T *cap)
|
||||
static void
|
||||
nv_halfpage(cmdarg_T *cap)
|
||||
{
|
||||
if ((cap->cmdchar == Ctrl_U && curwin->w_cursor.lnum == 1)
|
||||
|| (cap->cmdchar == Ctrl_D
|
||||
&& curwin->w_cursor.lnum == curbuf->b_ml.ml_line_count))
|
||||
clearopbeep(cap->oap);
|
||||
else if (!checkclearop(cap->oap))
|
||||
halfpage(cap->cmdchar == Ctrl_D, cap->count0);
|
||||
if (!checkclearop(cap->oap))
|
||||
pagescroll(cap->cmdchar == Ctrl_D, cap->count0, TRUE);
|
||||
}
|
||||
|
||||
/*
|
||||
|
Reference in New Issue
Block a user