screen: initialize screen properly with early set display-=msgsep

Currently `nvim -u NORC --cmd "set display-=msgsep"` will still allocate the
message grid and remove it just afterwards. While inefficient, we must
make sure update_screen() re-validates the default_grid completely when
this happens.

Fix some invalid logic: don't reallocate msg_grid on resize when the grid is not
used.

Elide a too early ui_flush() on startup, which caused an invalid cursor
position to be used.
This commit is contained in:
Björn Linse
2019-09-02 10:46:24 +02:00
parent 099445cc07
commit 66f4e8aee0
3 changed files with 19 additions and 5 deletions

View File

@@ -81,6 +81,20 @@ local function test_embed(ext_linegrid)
eq(Screen.colors.Green, screen.default_colors.rgb_bg)
end}
end)
it("set display-=msgsep before first redraw", function()
startup('--cmd', 'set display-=msgsep')
screen:expect{grid=[[
^ |
{3:~ }|
{3:~ }|
{3:~ }|
{3:~ }|
{3:~ }|
{3:~ }|
|
]]}
end)
end
describe('--embed UI on startup (ext_linegrid=true)', function() test_embed(true) end)