Skip to content

Commit 644b49f

Browse files
committed
patch 8.2.3444: concealed text not revealed when leaving insert mode
Problem: concealed text not revealed when leaving insert mode. (Michael Soyka) Solution: Check if concealing changed when leaving insert mode. (closes #8880)
1 parent 3dfe2e0 commit 644b49f

File tree

4 files changed

+36
-2
lines changed

4 files changed

+36
-2
lines changed

src/edit.c

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3582,6 +3582,11 @@ ins_esc(
35823582
{
35833583
int temp;
35843584
static int disabled_redraw = FALSE;
3585+
#ifdef FEAT_CONCEAL
3586+
// Remember if the cursor line was concealed before changing State.
3587+
int cursor_line_was_concealed = curwin->w_p_cole > 0
3588+
&& conceal_cursor_line(curwin);
3589+
#endif
35853590

35863591
#ifdef FEAT_SPELL
35873592
check_spell_redraw();
@@ -3701,6 +3706,11 @@ ins_esc(
37013706
// Re-enable modifyOtherKeys.
37023707
out_str(T_CTI);
37033708
}
3709+
#ifdef FEAT_CONCEAL
3710+
// Check if the cursor line needs redrawing after changing State. If
3711+
// 'concealcursor' is "i" it needs to be redrawn without concealing.
3712+
conceal_check_cursor_line(cursor_line_was_concealed);
3713+
#endif
37043714

37053715
// When recording or for CTRL-O, need to display the new mode.
37063716
// Otherwise remove the mode message.
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
|o+0&#ffffff0|n|e| |o|n|e| |o|n|e| |o|n|e| |o|n|e| @55
2+
|t|w|o| @1|h|e|r|e| @65
3+
|t|h|r|e@1| @1|t|h|r|e@1| @62
4+
|S|e|c|o|n|d| |w|i|n|d|o|w| @61
5+
|~+0#4040ff13&| @73
6+
|~| @73
7+
|~| @73
8+
|~| @73
9+
|~| @73
10+
|[+1#0000000&|N|o| |N|a|m|e|]| |[|+|]| @43|3|,|1|4| @10|A|l@1
11+
|o+0&&|n|e| |o|n|e| |o|n|e| |o|n|e| |o|n|e| @55
12+
|t|w|o| |||h|i|d@1|e|n||| >h|e|r|e| @57
13+
|t|h|r|e@1| @1|t|h|r|e@1| @62
14+
|~+0#4040ff13&| @73
15+
|~| @73
16+
|~| @73
17+
|~| @73
18+
|~| @73
19+
|[+3#0000000&|N|o| |N|a|m|e|]| |[|+|]| @43|2|,|1|4| @10|A|l@1
20+
| +0&&@74

src/testdir/test_conceal.vim

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,9 +59,11 @@ func Test_conceal_two_windows()
5959
" Check that with cursor line is only concealed in Insert mode
6060
call term_sendkeys(buf, ":set concealcursor=i\r")
6161
call VerifyScreenDump(buf, 'Test_conceal_two_windows_07n', {})
62-
call term_sendkeys(buf, "a")
62+
call term_sendkeys(buf, "14|a")
6363
call VerifyScreenDump(buf, 'Test_conceal_two_windows_07i', {})
64-
call term_sendkeys(buf, "\<Esc>/e")
64+
call term_sendkeys(buf, "\<Esc>")
65+
call VerifyScreenDump(buf, 'Test_conceal_two_windows_07in', {})
66+
call term_sendkeys(buf, "/e")
6567
call VerifyScreenDump(buf, 'Test_conceal_two_windows_07c', {})
6668
call term_sendkeys(buf, "\<Esc>v")
6769
call VerifyScreenDump(buf, 'Test_conceal_two_windows_07v', {})

src/version.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -755,6 +755,8 @@ static char *(features[]) =
755755

756756
static int included_patches[] =
757757
{ /* Add new patch number below this line */
758+
/**/
759+
3444,
758760
/**/
759761
3443,
760762
/**/

0 commit comments

Comments
 (0)