diff options
author | Thomas Vigouroux <tomvig38@gmail.com> | 2020-11-16 14:24:13 +0100 |
---|---|---|
committer | Thomas Vigouroux <tomvig38@gmail.com> | 2020-11-16 14:37:24 +0100 |
commit | 6a2cd5788687053ae613dced05c261a876f3ca46 (patch) | |
tree | 54a3a1ad0536d38f59da3ceeda89f15304a2c773 | |
parent | 6169167f90ba316b01cc64046ca46774bb1a22d7 (diff) | |
download | rneovim-6a2cd5788687053ae613dced05c261a876f3ca46.tar.gz rneovim-6a2cd5788687053ae613dced05c261a876f3ca46.tar.bz2 rneovim-6a2cd5788687053ae613dced05c261a876f3ca46.zip |
fix(floatwin): don't always use winheight
-rw-r--r-- | src/nvim/window.c | 7 | ||||
-rw-r--r-- | test/functional/ui/float_spec.lua | 44 |
2 files changed, 48 insertions, 3 deletions
diff --git a/src/nvim/window.c b/src/nvim/window.c index 4078cd31ac..17d9b8f483 100644 --- a/src/nvim/window.c +++ b/src/nvim/window.c @@ -4608,11 +4608,12 @@ static void win_enter_ext(win_T *wp, bool undo_sync, int curwin_invalid, redraw_all_later(NOT_VALID); } - /* set window height to desired minimal value */ - if (curwin->w_height < p_wh && !curwin->w_p_wfh) + // set window height to desired minimal value + if (curwin->w_height < p_wh && !curwin->w_p_wfh && !curwin->w_floating) { win_setheight((int)p_wh); - else if (curwin->w_height == 0) + } else if (curwin->w_height == 0) { win_setheight(1); + } // set window width to desired minimal value if (curwin->w_width < p_wiw && !curwin->w_p_wfw && !wp->w_floating) { diff --git a/test/functional/ui/float_spec.lua b/test/functional/ui/float_spec.lua index eec8eb93d4..32f9ae030f 100644 --- a/test/functional/ui/float_spec.lua +++ b/test/functional/ui/float_spec.lua @@ -83,6 +83,50 @@ describe('floatwin', function() assert_alive() end) + it('opened with correct height', function() + local height = exec_lua([[ + vim.api.nvim_set_option("winheight", 20) + local bufnr = vim.api.nvim_create_buf(false, true) + + local opts = { + height = 10, + col = 5, + row = 1, + relative = 'editor', + style = 'minimal', + width = 15 + } + + local win_id = vim.api.nvim_open_win(bufnr, true, opts) + + return vim.api.nvim_win_get_height(win_id) + ]]) + + eq(10, height) + end) + + it('opened with correct width', function() + local width = exec_lua([[ + vim.api.nvim_set_option("winwidth", 20) + local bufnr = vim.api.nvim_create_buf(false, true) + + local opts = { + height = 10, + col = 5, + row = 1, + relative = 'editor', + style = 'minimal', + width = 10 + } + + local win_id = vim.api.nvim_open_win(bufnr, true, opts) + + return vim.api.nvim_win_get_width(win_id) + ]]) + + eq(10, width) + end) + local function with_ext_multigrid(multigrid) local screen before_each(function() |