diff options
author | Björn Linse <bjorn.linse@gmail.com> | 2020-11-16 21:23:09 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-11-16 21:23:09 +0100 |
commit | dd48198e62a06c95ec98cdf3f4296c8e5f539550 (patch) | |
tree | a4e102d07c6c0d384c693ae469b7abbf65f2ec6b | |
parent | ba21ea51b0edb7c059ba6924619594f961882456 (diff) | |
parent | 6a2cd5788687053ae613dced05c261a876f3ca46 (diff) | |
download | rneovim-dd48198e62a06c95ec98cdf3f4296c8e5f539550.tar.gz rneovim-dd48198e62a06c95ec98cdf3f4296c8e5f539550.tar.bz2 rneovim-dd48198e62a06c95ec98cdf3f4296c8e5f539550.zip |
Merge pull request #13303 from vigoux/fix-13298
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() |