Mercurial > vim
diff src/edit.c @ 25074:aa55d6d17625 v8.2.3074
patch 8.2.3074: popup_atcursor() uses wrong position with concealing
Commit: https://github.com/vim/vim/commit/ea042677ab5cab736540f3164909cac2c685de74
Author: Bram Moolenaar <Bram@vim.org>
Date: Tue Jun 29 20:22:32 2021 +0200
patch 8.2.3074: popup_atcursor() uses wrong position with concealing
Problem: popup_atcursor() uses wrong position with concealing.
Solution: Keep w_wcol in conceal_check_cursor_line(). (closes https://github.com/vim/vim/issues/8476)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Tue, 29 Jun 2021 20:30:05 +0200 |
parents | c425989fe7ac |
children | 078edc1821bf |
line wrap: on
line diff
--- a/src/edit.c +++ b/src/edit.c @@ -147,6 +147,9 @@ edit( #ifdef FEAT_JOB_CHANNEL int cmdchar_todo = cmdchar; #endif +#ifdef FEAT_CONCEAL + int cursor_line_was_concealed; +#endif // Remember whether editing was restarted after CTRL-O. did_restart_edit = restart_edit; @@ -222,9 +225,9 @@ edit( } #ifdef FEAT_CONCEAL - // Check if the cursor line needs redrawing before changing State. If - // 'concealcursor' is "n" it needs to be redrawn without concealing. - conceal_check_cursor_line(); + // Check if the cursor line was concealed before changing State. + cursor_line_was_concealed = curwin->w_p_cole > 0 + && conceal_cursor_line(curwin); #endif /* @@ -283,6 +286,12 @@ edit( stop_insert_mode = FALSE; +#ifdef FEAT_CONCEAL + // Check if the cursor line needs redrawing after changing State. If + // 'concealcursor' is "n" it needs to be redrawn without concealing. + conceal_check_cursor_line(cursor_line_was_concealed); +#endif + /* * Need to recompute the cursor position, it might move when the cursor is * on a TAB or special character.