aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorluukvbaal <luukvbaal@gmail.com>2025-04-01 07:56:36 +0200
committerGitHub <noreply@github.com>2025-04-01 07:56:36 +0200
commit7e8b7bba21cfb0a35e442c27aec0ced1b32ce14d (patch)
treeb136018030ac74e99cb41ff8b2a8d29e09d2194f /src
parent32325a66ca0df66ba712b3316f24c358c4947620 (diff)
downloadrneovim-7e8b7bba21cfb0a35e442c27aec0ced1b32ce14d.tar.gz
rneovim-7e8b7bba21cfb0a35e442c27aec0ced1b32ce14d.tar.bz2
rneovim-7e8b7bba21cfb0a35e442c27aec0ced1b32ce14d.zip
fix(display): wrong cursor column with 'concealcursor' = "n" and virt_text (#33218)
Problem: Inline virtual text placed in a decor provider callback invalidates `w_virtcol`, which must be valid for `win_line()`. Solution: Call `validate_virtcol()` after "line" decor provider callbacks.
Diffstat (limited to 'src')
-rw-r--r--src/nvim/drawline.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/nvim/drawline.c b/src/nvim/drawline.c
index 43d9f67b5c..79cfc1ab2f 100644
--- a/src/nvim/drawline.c
+++ b/src/nvim/drawline.c
@@ -1163,7 +1163,8 @@ int win_line(win_T *wp, linenr_T lnum, int startrow, int endrow, int col_rows, b
}
}
- decor_providers_invoke_line(wp, lnum - 1);
+ decor_providers_invoke_line(wp, lnum - 1); // may invalidate wp->w_virtcol
+ validate_virtcol(wp);
has_decor = decor_redraw_line(wp, lnum - 1, &decor_state);