mirror of
https://github.com/neovim/neovim.git
synced 2025-10-08 02:46:31 +00:00
vim-patch:9.0.0652: 'smoothscroll' not tested with 'number' and "n" in 'cpo'
Problem: 'smoothscroll' not tested with 'number' and "n" in 'cpo'.
Solution: Add tests, fix uncovered problem.
b6aab8f44b
Co-authored-by: Bram Moolenaar <Bram@vim.org>
This commit is contained in:
@@ -596,7 +596,8 @@ static void handle_lnum_col(win_T *wp, winlinevars_T *wlv, int num_signs, int si
|
||||
int sign_num_attr, int sign_cul_attr)
|
||||
{
|
||||
if ((wp->w_p_nu || wp->w_p_rnu)
|
||||
&& (wlv->row == wlv->startrow + wlv->filler_lines
|
||||
&& ((wlv->row == wlv->startrow + wlv->filler_lines
|
||||
&& (wp->w_skipcol == 0 || wlv->row > wp->w_winrow))
|
||||
|| vim_strchr(p_cpo, CPO_NUMCOL) == NULL)) {
|
||||
// If 'signcolumn' is set to 'number' and a sign is present
|
||||
// in "lnum", then display the sign instead of the line
|
||||
|
@@ -1447,6 +1447,26 @@ static void win_update(win_T *wp, DecorProviders *providers)
|
||||
|
||||
init_search_hl(wp, &screen_search_hl);
|
||||
|
||||
// Make sure skipcol is valid, it depends on various options and the window
|
||||
// width.
|
||||
if (wp->w_skipcol > 0) {
|
||||
int w = 0;
|
||||
int width1 = wp->w_width - win_col_off(wp);
|
||||
int width2 = width1 + win_col_off2(wp);
|
||||
int add = width1;
|
||||
|
||||
while (w < wp->w_skipcol) {
|
||||
if (w > 0) {
|
||||
add = width2;
|
||||
}
|
||||
w += add;
|
||||
}
|
||||
if (w != wp->w_skipcol) {
|
||||
// always round down, the higher value may not be valid
|
||||
wp->w_skipcol = w - add;
|
||||
}
|
||||
}
|
||||
|
||||
// Force redraw when width of 'number' or 'relativenumber' column
|
||||
// changes.
|
||||
int nrwidth = (wp->w_p_nu || wp->w_p_rnu || *wp->w_p_stc) ? number_width(wp) : 0;
|
||||
|
Reference in New Issue
Block a user