diff options
-rw-r--r-- | .github/ISSUE_TEMPLATE/lsp_bug_report.md | 2 | ||||
-rw-r--r-- | src/nvim/window.c | 7 | ||||
-rw-r--r-- | test/functional/ui/float_spec.lua | 44 |
3 files changed, 49 insertions, 4 deletions
diff --git a/.github/ISSUE_TEMPLATE/lsp_bug_report.md b/.github/ISSUE_TEMPLATE/lsp_bug_report.md index a6fd0c9ead..660fbc3eed 100644 --- a/.github/ISSUE_TEMPLATE/lsp_bug_report.md +++ b/.github/ISSUE_TEMPLATE/lsp_bug_report.md @@ -15,7 +15,7 @@ labels: bug, lsp <details> <summary>nvim -c ":checkhealth nvim lspconfig"</summary> -<!-- Paste the results from `nvim -c ":checkhealth nvim nvim_lsp"` here. --> +<!-- Paste the results from `nvim -c ":checkhealth nvim lspconfig"` here. --> </details> 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() |