aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/nvim/window.c7
-rw-r--r--test/functional/ui/float_spec.lua7
2 files changed, 11 insertions, 3 deletions
diff --git a/src/nvim/window.c b/src/nvim/window.c
index bce4289ab4..2d71c19230 100644
--- a/src/nvim/window.c
+++ b/src/nvim/window.c
@@ -5546,10 +5546,11 @@ void command_height(void)
* p_ch was changed in another tab page. */
curtab->tp_ch_used = p_ch;
- /* Find bottom frame with width of screen. */
- frp = lastwin->w_frame;
- while (frp->fr_width != Columns && frp->fr_parent != NULL)
+ // Find bottom frame with width of screen.
+ frp = lastwin_nofloating()->w_frame;
+ while (frp->fr_width != Columns && frp->fr_parent != NULL) {
frp = frp->fr_parent;
+ }
/* Avoid changing the height of a window with 'winfixheight' set. */
while (frp->fr_prev != NULL && frp->fr_layout == FR_LEAF
diff --git a/test/functional/ui/float_spec.lua b/test/functional/ui/float_spec.lua
index 2ed3606491..3be2182eb4 100644
--- a/test/functional/ui/float_spec.lua
+++ b/test/functional/ui/float_spec.lua
@@ -1019,6 +1019,13 @@ describe('floating windows', function()
end
end)
+ it('does not crash when set cmdheight #9680', function()
+ local buf = meths.create_buf(false,false)
+ meths.open_win(buf, false, 20, 2, {relative='editor', row=2, col=5})
+ command("set cmdheight=2")
+ eq(1, meths.eval('1'))
+ end)
+
describe('and completion', function()
before_each(function()
local buf = meths.create_buf(false,false)