mirror of
https://github.com/neovim/neovim.git
synced 2025-09-28 22:18:33 +00:00
vim-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)
5a2e3ec9ac
This commit is contained in:
@@ -2258,7 +2258,7 @@ static void nv_page(cmdarg_T *cap)
|
||||
goto_tabpage(cap->count0);
|
||||
}
|
||||
} else {
|
||||
onepage(cap->arg, cap->count1);
|
||||
pagescroll(cap->arg, cap->count1, false);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6394,12 +6394,8 @@ static void nv_at(cmdarg_T *cap)
|
||||
/// Handle the CTRL-U and CTRL-D commands.
|
||||
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