0
0
mirror of https://github.com/vim/vim.git synced 2025-09-29 04:34:16 -04:00

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 #8476)
This commit is contained in:
Bram Moolenaar
2021-06-29 20:22:32 +02:00
parent 4067bd3604
commit ea042677ab
8 changed files with 43 additions and 15 deletions

View File

@@ -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.