UI: redraw statusline when entering cmdline (#8347)

This commit is contained in:
raichoo 2018-05-10 14:55:07 +02:00 committed by Justin M. Keyes
parent f1a3075553
commit 3a6b80f2f4
2 changed files with 28 additions and 0 deletions

View File

@ -347,6 +347,13 @@ static uint8_t *command_line_enter(int firstc, long count, int indent)
redrawcmd();
}
// redraw the statusline for statuslines that display the current mode
// using the mode() function.
if (KeyTyped) {
curwin->w_redr_status = true;
redraw_statuslines();
}
did_emsg = false;
got_int = false;
s->state.check = command_line_check;

View File

@ -157,6 +157,27 @@ describe('external cmdline', function()
end)
end)
it("redraws statusline on entering", function()
command('set laststatus=2')
command('set statusline=%{mode()}')
feed(':')
screen:expect([[
|
{1:~ }|
{1:~ }|
{3:c^ }|
|
]], nil, nil, function()
eq({{
content = { { {}, "" } },
firstc = ":",
indent = 0,
pos = 0,
prompt = ""
}}, cmdline)
end)
end)
it("works with input()", function()
feed(':call input("input", "default")<cr>')
screen:expect([[