diff options
author | erw7 <erw7.github@gmail.com> | 2019-03-09 22:10:56 +0900 |
---|---|---|
committer | Justin M. Keyes <justinkz@gmail.com> | 2019-03-09 14:10:56 +0100 |
commit | f719247118119cd6cd8158f3fead995175b92566 (patch) | |
tree | ecd3ade6dd757fa54aaddc151eb4eb99cd3b3453 | |
parent | 4352d41db0d93ab9266c64be48eda872cb5ea589 (diff) | |
download | rneovim-f719247118119cd6cd8158f3fead995175b92566.tar.gz rneovim-f719247118119cd6cd8158f3fead995175b92566.tar.bz2 rneovim-f719247118119cd6cd8158f3fead995175b92566.zip |
floating-window: fix crash setting cmdheight #9685
fixes #9680
-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) |