]> git.ipfire.org Git - thirdparty/vim.git/commit
patch 9.1.1817: popup: there are some position logic bugs v9.1.1817
authorGirish Palya <girishji@gmail.com>
Wed, 1 Oct 2025 20:52:44 +0000 (20:52 +0000)
committerChristian Brabandt <cb@256bit.org>
Wed, 1 Oct 2025 20:52:44 +0000 (20:52 +0000)
commite3ed5584ed7fad7070d49ddfba4f41bc2b22ca97
tree7670851d7903452a3d23c74767b9a22a55f9f34c
parentc7b2dcd986cd2f392c38825170c9086eee4b6552
patch 9.1.1817: popup: there are some position logic bugs

Problem:  popup: there are some position logic bugs
Solution: Refactor position logic and fix a few bugs
          (Girish Palya).

This change does the following:

- Simplified and rewrote horizontal positioning logic (was overly
  complex).
- Split horizontal and vertical positioning into separate functions.
- Fixed missing truncation marker (e.g. `>`) when items were truncated
  and `pummaxwidth` was not set.
- Fixed occasional extra space being added to menu items.
- Update tests

closes: #18441

Signed-off-by: Girish Palya <girishji@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
24 files changed:
src/popupmenu.c
src/testdir/dumps/Test_long_line_noselect_1.dump
src/testdir/dumps/Test_long_line_noselect_2.dump
src/testdir/dumps/Test_long_line_noselect_3.dump
src/testdir/dumps/Test_mouse_popup_position_01.dump
src/testdir/dumps/Test_mouse_popup_position_02.dump
src/testdir/dumps/Test_popup_position_02.dump
src/testdir/dumps/Test_popup_position_03.dump
src/testdir/dumps/Test_popup_position_04.dump
src/testdir/dumps/Test_popupwin_infopopup_6.dump
src/testdir/dumps/Test_popupwin_infopopup_7.dump
src/testdir/dumps/Test_popupwin_infopopup_8.dump
src/testdir/dumps/Test_popupwin_infopopup_9.dump [deleted file]
src/testdir/dumps/Test_popupwin_infopopup_wide_1.dump
src/testdir/dumps/Test_pum_completeitemalign_07.dump
src/testdir/dumps/Test_pum_maxwidth_07.dump
src/testdir/dumps/Test_pum_maxwidth_08.dump
src/testdir/dumps/Test_pum_maxwidth_21.dump
src/testdir/dumps/Test_pum_maxwidth_22.dump
src/testdir/dumps/Test_pum_rightleft_01.dump
src/testdir/dumps/Test_wildmenu_pum_odd_wildchar_1.dump
src/testdir/dumps/Test_wildmenu_pum_odd_wildchar_2.dump
src/testdir/test_popupwin.vim
src/version.c