Merge pull request #24125 from neovim/backport-24123-to-release-0.9

[Backport release-0.9] fix(cmdline): don't redraw 'tabline' in Ex mode
This commit is contained in:
zeertzjq 2023-06-23 07:11:03 +08:00 committed by GitHub
commit e4945e69f7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 40 additions and 1 deletions

View File

@ -787,7 +787,7 @@ static uint8_t *command_line_enter(int firstc, long count, int indent, bool clea
// Redraw the statusline in case it uses the current mode using the mode()
// function.
if (!cmd_silent) {
if (!cmd_silent && !exmode_active) {
bool found_one = false;
FOR_ALL_WINDOWS_IN_TAB(wp, curtab) {

View File

@ -944,6 +944,45 @@ describe('statusline is redrawn on entering cmdline', function()
end)
end)
it('tabline is not redrawn in Ex mode #24122', function()
clear()
local screen = Screen.new(60, 5)
screen:set_default_attr_ids({
[0] = {bold = true, foreground = Screen.colors.Blue}, -- NonText
[1] = {bold = true, reverse = true}, -- MsgSeparator
[2] = {reverse = true}, -- TabLineFill
})
screen:attach()
exec([[
set showtabline=2
set tabline=%!MyTabLine()
function! MyTabLine()
return "foo"
endfunction
]])
feed('gQ')
screen:expect{grid=[[
{2:foo }|
|
{1: }|
Entering Ex mode. Type "visual" to go to Normal mode. |
:^ |
]]}
feed('echo 1<CR>')
screen:expect{grid=[[
{1: }|
Entering Ex mode. Type "visual" to go to Normal mode. |
:echo 1 |
1 |
:^ |
]]}
end)
describe("cmdline height", function()
it("does not crash resized screen #14263", function()
clear()