aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuuk van Baal <luukvbaal@gmail.com>2024-04-27 01:00:55 +0200
committerLuuk van Baal <luukvbaal@gmail.com>2024-04-27 01:00:55 +0200
commitb8c1b36061f443f82f34f3d4fe7807fc33edefa6 (patch)
tree2096cfd85592f1043a09312e63d15bb8ac3b576a
parent7626f431d84fc3a6eb82d0d23d436e3e31e991ce (diff)
downloadrneovim-b8c1b36061f443f82f34f3d4fe7807fc33edefa6.tar.gz
rneovim-b8c1b36061f443f82f34f3d4fe7807fc33edefa6.tar.bz2
rneovim-b8c1b36061f443f82f34f3d4fe7807fc33edefa6.zip
fix(ui): set 'cmdheight' to zero for all open tabpages
Problem: Enabling ext_messages claims to set 'cmdheight' to zero, but only does so for the current tabpage. Solution: Set stored 'cmdheight' value to zero for all tabpages.
-rw-r--r--src/nvim/ui.c5
-rw-r--r--test/functional/lua/ui_event_spec.lua7
2 files changed, 11 insertions, 1 deletions
diff --git a/src/nvim/ui.c b/src/nvim/ui.c
index dd3bb53dde..27458d588b 100644
--- a/src/nvim/ui.c
+++ b/src/nvim/ui.c
@@ -218,10 +218,13 @@ void ui_refresh(void)
if (i < kUIGlobalCount) {
ext_widgets[i] |= ui_cb_ext[i];
}
- // Set 'cmdheight' to zero when ext_messages becomes active.
+ // Set 'cmdheight' to zero when ext_messages becomes active for all tabpages.
if (i == kUIMessages && !ui_ext[i] && ext_widgets[i]) {
set_option_value(kOptCmdheight, NUMBER_OPTVAL(0), 0);
command_height();
+ FOR_ALL_TABS(tp) {
+ tp->tp_ch_used = 0;
+ }
}
ui_ext[i] = ext_widgets[i];
if (i < kUIGlobalCount) {
diff --git a/test/functional/lua/ui_event_spec.lua b/test/functional/lua/ui_event_spec.lua
index 60f8706e2d..ae39172145 100644
--- a/test/functional/lua/ui_event_spec.lua
+++ b/test/functional/lua/ui_event_spec.lua
@@ -163,6 +163,13 @@ describe('vim.ui_attach', function()
screen:attach()
eq(1, n.api.nvim_get_option_value('cmdheight', {}))
end)
+
+ it("ui_refresh() sets 'cmdheight' for all open tabpages with ext_messages", function()
+ exec_lua('vim.cmd.tabnew()')
+ exec_lua('vim.ui_attach(ns, { ext_messages = true }, on_event)')
+ exec_lua('vim.cmd.tabnext()')
+ eq(0, n.api.nvim_get_option_value('cmdheight', {}))
+ end)
end)
describe('vim.ui_attach', function()