aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBjörn Linse <bjorn.linse@gmail.com>2021-06-12 14:59:47 +0200
committerGitHub <noreply@github.com>2021-06-12 14:59:47 +0200
commitdb83be2daba27b36e69fe4dbcb8e565b18da7f2e (patch)
tree292f0de791ef0e1bef60d1a30c842344c0216db3
parentd09b8ad715ca327766ed9f32c45e1776dae679f4 (diff)
parent8d23941af879536d0aa174a6a6b83c19b1174b6d (diff)
downloadrneovim-db83be2daba27b36e69fe4dbcb8e565b18da7f2e.tar.gz
rneovim-db83be2daba27b36e69fe4dbcb8e565b18da7f2e.tar.bz2
rneovim-db83be2daba27b36e69fe4dbcb8e565b18da7f2e.zip
Merge pull request #14137 from last-partizan/patch-1-test
Fix popupmenu position in multigrid mode (pum_above)
-rw-r--r--src/nvim/popupmnu.c2
-rw-r--r--test/functional/ui/float_spec.lua47
2 files changed, 48 insertions, 1 deletions
diff --git a/src/nvim/popupmnu.c b/src/nvim/popupmnu.c
index 7d452d6797..f620517aff 100644
--- a/src/nvim/popupmnu.c
+++ b/src/nvim/popupmnu.c
@@ -440,7 +440,7 @@ void pum_redraw(void)
}
if (ui_has(kUIMultigrid)) {
const char *anchor = pum_above ? "SW" : "NW";
- int row_off = pum_above ? pum_height : 0;
+ int row_off = pum_above ? -pum_height : 0;
ui_call_win_float_pos(pum_grid.handle, -1, cstr_to_string(anchor),
pum_anchor_grid, pum_row-row_off, pum_col-col_off,
false, pum_grid.zindex);
diff --git a/test/functional/ui/float_spec.lua b/test/functional/ui/float_spec.lua
index f3b840da21..3a9dcb8b01 100644
--- a/test/functional/ui/float_spec.lua
+++ b/test/functional/ui/float_spec.lua
@@ -2901,6 +2901,53 @@ describe('float window', function()
end
end)
+ it('command menu rendered above cursor (pum_above)', function()
+ command('set wildmenu wildmode=longest:full wildoptions=pum')
+ feed(':sign u<tab>')
+ if multigrid then
+ screen:expect{grid=[[
+ ## grid 1
+ [2:----------------------------------------]|
+ [2:----------------------------------------]|
+ [2:----------------------------------------]|
+ [2:----------------------------------------]|
+ [2:----------------------------------------]|
+ [2:----------------------------------------]|
+ [3:----------------------------------------]|
+ ## grid 2
+ |
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ ## grid 3
+ :sign un^ |
+ ## grid 4
+ {7: }|
+ {12:~ }|
+ {12:~ }|
+ {12:~ }|
+ ## grid 5
+ {1: undefine }|
+ {1: unplace }|
+ ]], float_pos={
+ [5] = {{id = -1}, "SW", 1, 6, 5, false, 250};
+ [4] = {{id = 1001}, "NW", 1, 2, 5, true, 50};
+ }}
+ else
+ screen:expect{grid=[[
+ |
+ {0:~ }|
+ {0:~ }{7: }{0: }|
+ {0:~ }{12:~ }{0: }|
+ {0:~ }{1: undefine }{0: }|
+ {0:~ }{1: unplace }{0: }|
+ :sign un^ |
+ ]]}
+ end
+ end)
+
it('with ext_popupmenu', function()
screen:set_option('ext_popupmenu', true)
feed('ix ')