diff options
author | zeertzjq <zeertzjq@outlook.com> | 2023-04-27 23:40:39 +0800 |
---|---|---|
committer | zeertzjq <zeertzjq@outlook.com> | 2023-04-28 05:49:47 +0800 |
commit | fbaa2787736173e417a93b958a9ca61e888e567d (patch) | |
tree | b35406f0f56f22c1903294c75ca85c7ad63fdb0c /src | |
parent | f65043154e023263bc98057b1792893ef2bfee18 (diff) | |
download | rneovim-fbaa2787736173e417a93b958a9ca61e888e567d.tar.gz rneovim-fbaa2787736173e417a93b958a9ca61e888e567d.tar.bz2 rneovim-fbaa2787736173e417a93b958a9ca61e888e567d.zip |
fix(pum): make :popup position correctly with float border
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/popupmenu.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/nvim/popupmenu.c b/src/nvim/popupmenu.c index aa50f04c33..3246ef2c71 100644 --- a/src/nvim/popupmenu.c +++ b/src/nvim/popupmenu.c @@ -1169,8 +1169,15 @@ void pum_make_popup(const char *path_name, int use_mouse_pos) if (!use_mouse_pos) { // Hack: set mouse position at the cursor so that the menu pops up // around there. - mouse_row = curwin->w_winrow + curwin->w_wrow; - mouse_col = curwin->w_wincol + curwin->w_wcol; + mouse_row = curwin->w_grid.row_offset + curwin->w_wrow; + mouse_col = curwin->w_grid.col_offset + curwin->w_wcol; + if (ui_has(kUIMultigrid)) { + mouse_grid = curwin->w_grid.target->handle; + } else if (curwin->w_grid.target != &default_grid) { + mouse_grid = 0; + mouse_row += curwin->w_winrow; + mouse_col += curwin->w_wincol; + } } vimmenu_T *menu = menu_find(path_name); |