diff options
author | zeertzjq <zeertzjq@outlook.com> | 2024-03-17 09:44:10 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-03-17 09:44:10 +0800 |
commit | c52dfb6e840827a2de713e40ea8506491ec7ce0b (patch) | |
tree | e1fc46dfda47005588439c769cc4e75a51a08ca3 /src/nvim/ui.c | |
parent | d114dbe9f79c1382298b04319b7ded88e95e3ee8 (diff) | |
download | rneovim-c52dfb6e840827a2de713e40ea8506491ec7ce0b.tar.gz rneovim-c52dfb6e840827a2de713e40ea8506491ec7ce0b.tar.bz2 rneovim-c52dfb6e840827a2de713e40ea8506491ec7ce0b.zip |
fix(normal): don't check conceal when pressing 'r' (#27892)
Problem: Cursor line is unconcealed when pressing 'r' in Normal mode
when 'concealcursor' contains 'n' but not 'i'.
Solution: Don't check conceal when pressing 'r' in Normal mode.
Vim doesn't have this problem because it doesn't call redrawWinline() in
conceal_check_cursor_line() and instead sets a global variable.
Diffstat (limited to 'src/nvim/ui.c')
-rw-r--r-- | src/nvim/ui.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/nvim/ui.c b/src/nvim/ui.c index bddcf98b53..506bb93f5b 100644 --- a/src/nvim/ui.c +++ b/src/nvim/ui.c @@ -624,7 +624,7 @@ void ui_check_mouse(void) /// Check if current mode has changed. /// /// May update the shape of the cursor. -void ui_cursor_shape(void) +void ui_cursor_shape_no_check_conceal(void) { if (!full_screen) { return; @@ -635,6 +635,15 @@ void ui_cursor_shape(void) ui_mode_idx = new_mode_idx; pending_mode_update = true; } +} + +/// Check if current mode has changed. +/// +/// May update the shape of the cursor. +/// With concealing on, may conceal or unconceal the cursor line. +void ui_cursor_shape(void) +{ + ui_cursor_shape_no_check_conceal(); conceal_check_cursor_line(); } |