mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
vim-patch:8.2.0007: popup menu positioned wrong with folding in two tabs
Problem: Popup menu positioned wrong with folding in two tabs.
Solution: Update the cursor line height. (closes vim/vim#5353)
09dd2bb336
This commit is contained in:
parent
56bb5993d9
commit
2bfe2018d6
@ -641,7 +641,7 @@ void validate_virtcol_win(win_T *wp)
|
||||
/*
|
||||
* Validate curwin->w_cline_height only.
|
||||
*/
|
||||
static void validate_cheight(void)
|
||||
void validate_cheight(void)
|
||||
{
|
||||
check_cursor_moved(curwin);
|
||||
if (!(curwin->w_valid & VALID_CHEIGHT)) {
|
||||
|
@ -226,6 +226,7 @@ void pum_display(pumitem_T *array, int size, int selected, bool array_changed,
|
||||
pum_above = false;
|
||||
|
||||
// Leave two lines of context if possible
|
||||
validate_cheight();
|
||||
if (curwin->w_cline_row + curwin->w_cline_height - curwin->w_wrow >= 3) {
|
||||
context_lines = 3;
|
||||
} else {
|
||||
|
@ -1,3 +1,5 @@
|
||||
source screendump.vim
|
||||
source check.vim
|
||||
|
||||
" Test for insert expansion
|
||||
func Test_ins_complete()
|
||||
@ -338,3 +340,27 @@ func Test_compl_in_cmdwin()
|
||||
delcom GetInput
|
||||
set wildmenu& wildchar&
|
||||
endfunc
|
||||
|
||||
func Test_pum_with_folds_two_tabs()
|
||||
CheckScreendump
|
||||
|
||||
let lines =<< trim END
|
||||
set fdm=marker
|
||||
call setline(1, ['" x {{{1', '" a some text'])
|
||||
call setline(3, range(&lines)->map({_, val -> '" a' .. val}))
|
||||
norm! zm
|
||||
tab sp
|
||||
call feedkeys('2Gzv', 'xt')
|
||||
call feedkeys("0fa", 'xt')
|
||||
END
|
||||
|
||||
call writefile(lines, 'Xpumscript')
|
||||
let buf = RunVimInTerminal('-S Xpumscript', #{rows: 10})
|
||||
call term_wait(buf, 100)
|
||||
call term_sendkeys(buf, "a\<C-N>")
|
||||
call VerifyScreenDump(buf, 'Test_pum_with_folds_two_tabs', {})
|
||||
|
||||
call term_sendkeys(buf, "\<Esc>")
|
||||
call StopVimInTerminal(buf)
|
||||
call delete('Xpumscript')
|
||||
endfunc
|
||||
|
Loading…
Reference in New Issue
Block a user