diff options
-rw-r--r-- | src/nvim/window.c | 7 | ||||
-rw-r--r-- | test/functional/ui/float_spec.lua | 7 |
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) |