aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/nvim/window.c7
-rw-r--r--test/functional/ui/float_spec.lua44
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()