aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/nvim/screen.c3
-rw-r--r--test/functional/ui/screen_basic_spec.lua60
2 files changed, 61 insertions, 2 deletions
diff --git a/src/nvim/screen.c b/src/nvim/screen.c
index 2e64eb864f..b615f69cd3 100644
--- a/src/nvim/screen.c
+++ b/src/nvim/screen.c
@@ -309,6 +309,9 @@ void update_screen(int type)
if (wp->w_winrow + wp->w_height + wp->w_status_height > valid) {
wp->w_redr_status = true;
}
+ if (valid == 0) {
+ redraw_tabline = true;
+ }
}
} else if (msg_scrolled > Rows - 5) { // clearing is faster
type = CLEAR;
diff --git a/test/functional/ui/screen_basic_spec.lua b/test/functional/ui/screen_basic_spec.lua
index 7fafd6b352..837934e529 100644
--- a/test/functional/ui/screen_basic_spec.lua
+++ b/test/functional/ui/screen_basic_spec.lua
@@ -240,8 +240,8 @@ describe('Screen', function()
end)
end)
- describe('tabnew', function()
- it('creates a new buffer', function()
+ describe('tabs', function()
+ it('tabnew creates a new buffer', function()
command('sp')
command('vsp')
command('vsp')
@@ -299,6 +299,62 @@ describe('Screen', function()
|
]])
end)
+
+ it('tabline is redrawn after messages', function()
+ command('tabnew')
+ screen:expect([[
+ {4: [No Name] }{2: [No Name] }{3: }{4:X}|
+ ^ |
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ |
+ ]])
+
+ feed(':echo "'..string.rep('x\\n', 11)..'"<cr>')
+ screen:expect([[
+ {1: }|
+ x |
+ x |
+ x |
+ x |
+ x |
+ x |
+ x |
+ x |
+ x |
+ x |
+ x |
+ |
+ {7:Press ENTER or type command to continue}^ |
+ ]])
+
+ feed('<cr>')
+ screen:expect([[
+ {4: [No Name] }{2: [No Name] }{3: }{4:X}|
+ ^ |
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ |
+ ]])
+ end)
end)
describe('insert mode', function()