mirror of
https://github.com/neovim/neovim.git
synced 2026-04-21 06:45:37 +00:00
fix(pum): adjust info window column offset when scrollbar is present (#37069)
Problem: When the popupmenu has no border but includes a scrollbar, the info window column is misaligned due to a missing column offset. Solution: Apply a one-column offset to the info window when the popup menu has no border and a scrollbar is present.
This commit is contained in:
@@ -959,10 +959,7 @@ static void pum_preview_set_text(buf_T *buf, char *info, linenr_T *lnum, int *ma
|
|||||||
static void pum_adjust_info_position(win_T *wp, int width)
|
static void pum_adjust_info_position(win_T *wp, int width)
|
||||||
{
|
{
|
||||||
int border_width = pum_border_width();
|
int border_width = pum_border_width();
|
||||||
int col = pum_col + pum_width + 1 + border_width;
|
int col = pum_col + pum_width + 1 + MAX(border_width, pum_scrollbar);
|
||||||
if (border_width < 0) {
|
|
||||||
col += pum_scrollbar;
|
|
||||||
}
|
|
||||||
// TODO(glepnir): support config align border by using completepopup
|
// TODO(glepnir): support config align border by using completepopup
|
||||||
// align menu
|
// align menu
|
||||||
int right_extra = Columns - col;
|
int right_extra = Columns - col;
|
||||||
|
|||||||
@@ -9342,6 +9342,16 @@ describe('builtin popupmenu', function()
|
|||||||
:!^ |
|
:!^ |
|
||||||
]])
|
]])
|
||||||
end
|
end
|
||||||
|
feed('<ESC>:set pumheight=2<CR>Gi<C-X><C-O>')
|
||||||
|
if not multigrid then
|
||||||
|
screen:expect([[
|
||||||
|
one^ |
|
||||||
|
{12:one }{c: }{n:1info}{1: }|
|
||||||
|
{n:two }{12: }{1: }|
|
||||||
|
{1:~ }|*7
|
||||||
|
{5:-- }{6:match 1 of 3} |
|
||||||
|
]])
|
||||||
|
end
|
||||||
end)
|
end)
|
||||||
it("no crash when 'pumborder' set #36337", function()
|
it("no crash when 'pumborder' set #36337", function()
|
||||||
command('set autocomplete pumborder=rounded complete=o cot=popup,menuone,noinsert')
|
command('set autocomplete pumborder=rounded complete=o cot=popup,menuone,noinsert')
|
||||||
|
|||||||
Reference in New Issue
Block a user