aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/move.c
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2023-07-06 11:07:23 +0800
committerGitHub <noreply@github.com>2023-07-06 11:07:23 +0800
commit25e62697c32e43d978e43776f9a01cd62bfe83be (patch)
tree2bcede00c7cef91d3b18cdf9dcc5f27b51b390b3 /src/nvim/move.c
parenta0c9c04f006dbc6cb38d620ec036e32ccb8e76cc (diff)
downloadrneovim-25e62697c32e43d978e43776f9a01cd62bfe83be.tar.gz
rneovim-25e62697c32e43d978e43776f9a01cd62bfe83be.tar.bz2
rneovim-25e62697c32e43d978e43776f9a01cd62bfe83be.zip
fix(column): fix wrong cursor with 'statuscolumn' and cpo+=n (#24268)
Diffstat (limited to 'src/nvim/move.c')
-rw-r--r--src/nvim/move.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/nvim/move.c b/src/nvim/move.c
index 873ef6c417..03d7f95bba 100644
--- a/src/nvim/move.c
+++ b/src/nvim/move.c
@@ -775,9 +775,9 @@ void validate_cursor_col(void)
// fold column and sign column (these don't move when scrolling horizontally).
int win_col_off(win_T *wp)
{
- return ((wp->w_p_nu || wp->w_p_rnu || (*wp->w_p_stc != NUL)) ?
+ return ((wp->w_p_nu || wp->w_p_rnu || *wp->w_p_stc != NUL) ?
(number_width(wp) + (*wp->w_p_stc == NUL)) : 0)
- + (cmdwin_type == 0 || wp != curwin ? 0 : 1)
+ + ((cmdwin_type == 0 || wp != curwin) ? 0 : 1)
+ win_fdccol_count(wp)
+ (win_signcol_count(wp) * win_signcol_width(wp));
}
@@ -792,8 +792,9 @@ int curwin_col_off(void)
// is in 'cpoptions'.
int win_col_off2(win_T *wp)
{
- if ((wp->w_p_nu || wp->w_p_rnu) && vim_strchr(p_cpo, CPO_NUMCOL) != NULL) {
- return number_width(wp) + 1;
+ if ((wp->w_p_nu || wp->w_p_rnu || *wp->w_p_stc != NUL)
+ && vim_strchr(p_cpo, CPO_NUMCOL) != NULL) {
+ return number_width(wp) + (*wp->w_p_stc == NUL);
}
return 0;
}